我有一本字典:
data = {"data": "\u512b"}
我把它转发给json:
import json
print json.dumps(data)
我得到了:{"a":"\\u512b"}
我该怎么做才能准确地获得{"a":"\u512b"}
?
注意:我尝试在字符串前添加u
,使其变为u'\u512b'
,而额外的\
不会再次显示,请告诉我原因
答案 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!