>>> import json
простой пример, с плюсами, Latin1 "s sharp", кириллица "capital zhe"
Примечание: убедитесь, что ваши строки в Unicode или ASCII:
>>> data = {"body" : u"++\xdf\u0416", "universe": 42}
>>> data
{'body': u'++\xdf\u0416', 'universe': 42}
Создайте строку JSON, которая оказывается ASCII - экранируются все не-ASCII символы:
>>> encoded = json.dumps(data)
>>> encoded
'{"body": "++\\u00df\\u0416", "universe": 42}'
Передайте строку JSON на другой компьютер. Удостоверьтесь в необходимости дальнейшего экранирования, если ваш канал передачи искажает символы ASCII. На удаленном компьютере выполните все необходимые шаги, чтобы восстановить строку JSON.
Затем преобразуйте строку JSON обратно в объект Python:
>>> decoded = json.loads(encoded)
>>> decoded
{u'body': u'++\xdf\u0416', u'universe': 42}
>>> decoded == data
True
>>>
Примечание к ensure_ascii=False
: в результате будет получена строка unicode
:
>>> u_encoded = json.dumps(data, ensure_ascii=False)
>>> u_encoded
u'{"body": "++\xdf\u0416", "universe": 42}'
, который должен быть закодирован (рекомендуется UTF-8
) в строку str
, прежде чем вы сможете его передать, и декодирован на другом конце. Вы все еще должны принять меры предосторожности против искалеченных + < > &
и т. Д. Символов.