Импорт-экспорт Django в Ubuntu 16.04 вызывает ошибку JSON - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь загрузить файл * .xslx из приложения django в модель. Все работало отлично, пока я не развернул приложение на виртуальной машине Linux (Ubuntu 16.04).

Возникает следующая ошибка: объект JSON должен быть str, а не «байтами»

Это код из моего views.py:

    if request.method == "POST":
        try:
            form = UploadFileForm(request.POST, request.FILES["excel_file"])
            file =  request.FILES['excel_file']
            Import_Resource = resources.modelresource_factory(model=item)()
            dataset =  tablib.Dataset()
            if not file.name.endswith('.xlsx'):
                messages.error(request, 'This is not a excel file!')
            imported_data = dataset.load(file.read())

Я попытался декодировать объект набора данных (как utf-8), но затем я получаю сообщение об ошибке, что он не может декодировать символ определенной позиции - думаю, это из-за некоторых специальных символов латинского алфавита, которые находятся в содержимом файлаЯ пытаюсь импортировать. Если я использую латиницу-1, то она возвращает следующую ошибку: class 'KeyError'> 'p'.

Это проверенный код, который генерирует вышеуказанную ошибку:

def upload(request):
    if request.method == "POST":
        try:
            form = UploadFileForm(request.POST, request.FILES["excel_file"])
            file =  request.FILES['excel_file']
            Import_Resource = resources.modelresource_factory(model=item)()
            dataset =  tablib.Dataset()
            if not file.name.endswith('.xlsx'):
                messages.error(request, 'This is not a excel file!')
            imported_data = dataset.load(file.read().decode('latin-1'))

DoУ вас, ребята, есть идеи, как решить эту проблему?

...