我发出了一个 JSON 请求,它给了我一个使用Unicode 字符代码的字符串,如下所示:
s = "\u003Cp\u003E"
我想将其转换为:
s = "<p>"
在 Python 中执行此操作的最佳方法是什么?
请注意,这与此问题相同,仅在 Python 中,除了 Ruby。我也在使用Posterous API。
我发出了一个 JSON 请求,它给了我一个使用Unicode 字符代码的字符串,如下所示:
s = "\u003Cp\u003E"
我想将其转换为:
s = "<p>"
在 Python 中执行此操作的最佳方法是什么?
请注意,这与此问题相同,仅在 Python 中,除了 Ruby。我也在使用Posterous API。
>>> "\\u003Cp\\u003E".decode('unicode-escape')
u'<p>'
如果数据来自 JSON,则json
模块应该已经为您解码了这些转义:
>>> import json
>>> json.loads('"\u003Cp\u003E"')
u'<p>'
编辑:最初的问题“使用 Python 处理字符串中的字符转义”并没有说明字符串是要写入还是要读取(后来,添加了“ JSON 响应”字样,以澄清意图是读取)。
所以我回答了相反的问题:如何编写JSON 序列化数据将它们转储到未转义的字符串(而不是从字符串中加载数据)。
我的用例是从我自己的数据字典中生成一个 JSON 文件,但该文件包含转义的非 ASCII 字符。所以我这样做了:
with open(filename,'w') as jsonfile:
jsonstr = json.dumps(myDictionary, ensure_ascii=False)
print(jsonstr) # to screen
jsonfile.write(jsonstr) # to file
如果ensure_ascii
为 true(默认值),则保证输出所有传入的非 ASCII 字符都已转义。如果ensure_ascii
为 false,这些字符将按原样输出。