Python, хранящий японское слово в файле JSON - PullRequest
0 голосов
/ 12 мая 2018

У меня есть данные json в следующем формате, и я пытаюсь сохранить их в файле JSON, но они хранятся в зашифрованном виде в файле data.json

data= {"a": "{0}さんではないですか?"}
    with open('data.json', 'w') as fp:
        fp.write(json.dumps(data).encode("utf8"))

data.json

{"a": "{0}\u3055\u3093\u3067\u306f\u306a\u3044\u3067\u3059\u304b\uff1f"}

Я хочу, чтобы data.json был в этом формате

{"a": "{0}さんではないですか?"}

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

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Если вы кодируете его, вы также должны открыть файл в виде байтового массива с wb. Поскольку вы используете utf8 вместо ascii, включите ensure_ascii=False в json.dumps()

Дайте этому попытку

import json

data= {"a": "{0}さんではないですか?"}
with open('data.json', 'wb') as fp:
    fp.write(json.dumps(data, ensure_ascii=False).encode("utf8"))

data = {"a": "{0}さんではないですか?"} и

data = {"a": "{0}\u3055\u3093\u3067\u306f\u306a\u3044\u3067\u3059\u304b\uff1f"}

Оба сохраняются как {"a": "{0}さんではないですか?"} в файле json.

0 голосов
/ 12 мая 2018

Попробуйте использовать json.dumps(s, ensure_ascii=False).

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