Почему я получаю ошибку декодирования при использовании нагрузки JSON в Python? - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь открыть файл json, но получаю ошибку декодирования.Я не могу найти решение для этого.Как я могу декодировать эти данные?

Код выдает следующую ошибку:

UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0xf6 в позиции 3765: недопустимый начальный байт

import json
url = 'users.json'
with open(url) as json_data:
     data = json.load(json_data)

1 Ответ

1 голос
/ 01 мая 2019

Это означает, что данные, которые вы пытаетесь декодировать, не кодируются в UTF-8

РЕДАКТИРОВАТЬ:

Вы можете декодировать их перед загрузкой с помощью json, используя что-то вроде этого:

with open(url, 'rb') as f:
  data = f.read()
  data_str = data.decode("utf-8", errors='ignore')
  json.load(data_str)

https://www.tutorialspoint.com/python/string_decode.htm

Будьте осторожны, так как вы потеряете некоторые данные во время этого процесса.Более безопасный способ - использовать тот же механизм декодирования, который использовался для кодирования файла JSON, или поместить необработанные байты данных в нечто вроде base64

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