как установить правильную кодировку для json.load - PullRequest
1 голос
/ 18 апреля 2019

Я пытался загрузить JSON следующим образом:

data = json.load(f)

По некоторым причинам JSON имеет кодировку windows1251. Таким образом, попытка открыть его вызывает ошибку:

File "./labelme2voc.py", line 252, in main
    data = json.load(f)
  File "/home/dex/anaconda3/lib/python3.6/json/__init__.py", line 296, in load
    return loads(fp.read(),
  File "/home/dex/anaconda3/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 81: invalid continuation byte

Как я могу это исправить? У загрузки JSON такой опции для кодирования не указывается

1 Ответ

1 голос
/ 18 апреля 2019

Попробуйте это:

import json

filename = ...  # specify filename here

with open(filename, encoding='cp1252') as f:
    data = json.loads(f.read())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...