#python #json #encoding
#питон #json #кодирование
Вопрос:
Я пытался загрузить 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 load нет такой опции для указания кодировки
Ответ №1:
Попробуй это:
import json
filename = ... # specify filename here
with open(filename, encoding='cp1252') as f:
data = json.loads(f.read())