У меня есть файл json, который я пытаюсь прочитать с помощью python3.6.text
является одним из ключей в файле json и содержит текст на немецком языке.
Я делаю следующее, чтобы прочитать файл:
import json
file_name='1.json'
file = json.load(open(file_name))
Когда я пытаюсь прочитать его на сервере таким образом, я получаю следующую ошибку:
>>> json.load(open('1.json'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/anaconda3/lib/python3.6/json/__init__.py", line 296, in load
return loads(fp.read(),
File "/anaconda3/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3335: ordinal not in range(128)
Если я пытаюсь сделать это следующим образом, я не получаю никакой ошибки, но не могу правильно видеть символы, отличные от ascii:
file = json.load(open('1.json',encoding='utf-8'))
file['text']
"Ich finde, dass dieser Debatte nicht ausgewichen werden darf, auch
nicht kann", sagte er in der ARD. Die Bundesregierung habe die Kernenergie
trotz der Verl\xe4ngerung der Laufzeiten um durchschnittlich zw\xf6lf
Jahre immer als "Auslaufmodell" betrachtet.\nHelfer in Schutzanz\xfcgen am
Atommeiler Fukushima
Если я пытаюсь открыть его на своем локальном компьютере, я могу открыть его безлюбая проблема и все символы отображаются правильно:
file = json.load(open('1.json')
file['text']
"Ich finde, dass dieser Debatte nicht ausgewichen werden darf, auch
nicht kann", sagte er in der ARD. Die Bundesregierung habe die Kernenergie
trotz der Verlängerung der Laufzeiten um durchschnittlich zwölf Jahre
immer als "Auslaufmodell" betrachtet.\nHelfer in Schutzanzügen am Atommeiler Fukushima
Во всех средах я использую python 3.6, мой local is osx, тогда как centos запускается на сервере.Когда я проверяю формат файла, я вижу, что это utf-8:
file -i 1.json
1.json: text/plain; charset=utf-8
У меня есть 2 вопроса:
1) Почему я получаю разные варианты поведения с одним и тем же кодом?
2) Как я могу исправить проблему на сервере?