У меня есть json файл, который, случается, содержит множество китайских и японских (и других языков) символов. Я загружаю его в свой python 2.7 script с помощью io.open
следующим образом:
with io.open('multiIdName.json', encoding="utf-8") as json_data:
cards = json.load(json_data)
Я добавляю новое свойство json, все хорошо. Затем я пытаюсь записать его обратно в другой файл:
with io.open("testJson.json",'w',encoding="utf-8") as outfile:
json.dump(cards, outfile, ensure_ascii=False)
Что, когда я получаю ошибку TypeError: must be unicode, not str
Я пробовал записывать outfile как двоичный файл (with io.open("testJson.json",'wb') as outfile:
), но в итоге получилось:
{"multiverseid": 262906, "name": "\u00e6\u00b8\u00b8\u00e9\u009a\u00bc\u00e7\u008b\u00ae\u00e9\u00b9\u00ab", "language": "Chinese Simplified"}
Я думал, что открытие и запись его в одной кодировке будет достаточно, а также флаг secure_ascii, но явно нет. Я просто хочу сохранить символы, которые существовали в файле, прежде чем я запустил script, не превращая их в\u's.