I have simple application written in django with one form that uploads CSV
file.
My CSV file has a lot of columns with cyrillic letters. Just for testing I made my view handle html form like this:
@login_required()
@require_http_methods(["POST"])
def upload_csv(request):
uploaded_file = request.FILES['csv'].read(200)
data = csv.reader(uploaded_file)
for row in data:
print(row)
return redirect('moderator:upload_view')
When I try to upload my CSV, I get this error:
Traceback (most recent call last):
File "D:\Python27\lib\site-packages\django\core\handlers\base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "D:\Python27\lib\site-packages\django\core\handlers\base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\Python27\lib\site-packages\django\contrib\auth\decorators.py", line 23, in _wrapped_view
return view_func(request, *args, **kwargs)
File "D:\Python27\lib\site-packages\django\views\decorators\http.py", line 42, in inner
return func(request, *args, **kwargs)
File "D:\myapp\moderator\views\upload.py", line 32, in upload_csv
for row in data:
Error: line contains NULL byte
[08/Apr/2017 13:53:41] "POST /moderator/upload_csv/ HTTP/1.1" 500 87052
First I thought that my CSV is corrupted. Then why other CSV readers and Excel can open it?