删除转义字符并获取字符串的一部分

时间:2017-02-25 06:33:53

标签: python unicode-escapes

我有一个问题字符串看起来像这样 '{"type":"2","question_id":"\\u5c0d\\u65bc\\u7d93\\u71df\\u4e00\\u6bb5\\u611f\\u60c5\\uff0c\\u59b3\\u89ba\\u5f97\\u6700\\u91cd\\u8981\\u7684\\u95dc\\u9375\\u662f\\u4ec0\\u9ebc\\u5462\\uff1f","text":"\\u5fcd \\u8b93\\u5c0d\\u65b9"}' 我只想要文本部分,即“\ u5fcd \ u8b93 \ u5c0d \ u65b9”, 但需要清理它才能打印出来, 有什么建议? 谢谢

1 个答案:

答案 0 :(得分:1)

字符串在unicode-escape解码后看起来像一个json:

>>> s = '{"type":"2","question_id":"...","text":"\\u5fcd \\u8b93\\u5c0d\\u65b9"}'
>>> s.encode().decode('unicode-escape')  # `encode` is not needed in python 2.x
'{"type":"2","question_id":"對於經營一段感情,妳覺得最重要的關鍵是什麼呢?","text":"忍 讓對方"}'

您可以使用json.loads反序列化json:

>>> import json
>>> print(json.loads(s.encode().decode('unicode-escape'))['text'])
'忍 讓對方'