Как исправить ошибку «Объект типа bites не JSON-сериализуемый» с API, JSON и Python - PullRequest
0 голосов
/ 31 января 2019

Как ни странно, этот код работал точно так же, как я хотел на своем MacBook Pro, но теперь, когда я пытаюсь сделать то же самое на Windows с моим рабочим компьютером, у него возникли некоторые проблемы.Возможно, это прояснит проблему?

В любом случае, вот строка кода, которая доставляет мне неприятности:

with open('PATH', 'w', encoding='utf8') as outfile:
    json.dump(surveyDetails.content, outfile).encode('utf8')

Вы можете видеть, что я наполнил его до краев попытками кодироватьэто как utf-8.Мне не нужно было делать это на моем Mac, но что угодно.Тем не менее, я все еще получаю ту же ошибку, когда большинство похожих постов, которые я прочитал, говорят, что это решение.Я не уверен, что еще попробовать - есть ли другой способ кодировать это, который должен работать лучше?

1 Ответ

0 голосов
/ 01 февраля 2019

Вам не нужно ничего кодировать.Проблема в том, что объект, который вы пытаетесь сбросить, уже закодирован в bytes объект, и JSON не знает, что с ними делать.

Если surveyDetails.contentсам по себе является bytes объектом, декодируйте его перед передачей:

json.dump(surveyDetails.content.decode('utf-8'), outfile)

Если surveyDetails.content является объектом, указателем или другим объектом, который содержит один или несколько bytes объектовВам нужно будет пройти и декодировать любые bytes объекты в нем, прежде чем выгрузить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...