8

我发出了一个 JSON 请求,它给了我一个使用Unicode 字符代码的字符串,如下所示:

s = "\u003Cp\u003E"

我想将其转换为:

s = "<p>"

在 Python 中执行此操作的最佳方法是什么?

请注意,这与此问题相同,仅在 Python 中,除了 Ruby。我也在使用Posterous API

4

3 回答 3

17
>>> "\\u003Cp\\u003E".decode('unicode-escape')
u'<p>'
于 2011-04-05T16:23:34.590 回答
15

如果数据来自 JSON,则json模块应该已经为您解码了这些转义:

>>> import json
>>> json.loads('"\u003Cp\u003E"')
u'<p>'
于 2011-04-05T16:26:07.373 回答
1

编辑:最初的问题“使用 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,这些字符将按原样输出。

取自这里:https ://docs.python.org/3/library/json.html

于 2021-02-10T20:55:46.713 回答