如何正确保存" \ u **"到python中的json

时间:2017-01-21 15:32:57

标签: python json

我有一本字典:

data = {"data": "\u512b"}

我把它转发给json:

import json
print json.dumps(data)

我得到了:{"a":"\\u512b"} 我该怎么做才能准确地获得{"a":"\u512b"}

注意:我尝试在字符串前添加u,使其变为u'\u512b',而额外的\不会再次显示,请告诉我原因

2 个答案:

答案 0 :(得分:0)

你可以做一些黑客攻击。

import json

data = {"data": "\u512b"}
s = json.dumps(data)
print(s.replace(r'\u', 'u'))
print(type(s.replace(r'\u', 'u')))

输出:

{"data": "\u512b"}
<type 'str'>

答案 1 :(得分:0)

我的猜测是你只是对Python解释器的输出感到困惑,向你展示了fetch.error.backoff.ms生成的字符串,其中有json.dumps个转义字符,前面跟\个字符。串。作为值的JSON字符串恰好包含一个\,如您所愿(IIUC):

\

事实上,这完全独立于JSON,如下例所示:

>>> data = {"data": "\u512b"}
>>> data
{'data': '\u512b'}
>>> import json
>>> json.dumps(data)
'{"data": "\\u512b"}'
>>> print(json.dumps(data))
{"data": "\u512b"}
>>> json.dump(data, open('data.json', 'w'))
>>> ^Z
C:\opt\Console2>type data.json
{"data": "\u512b"}

HTH!