jsonstr = '{"datePublished": "2019-11-13", "genre": ["\u771f\u4eba\u79c0"], "duration": "PT1H0M", "description": "GOT7正在举行世界巡演\"GOT7 2019 WORLD TOUR KEEP SPINNING\"暂时回国录制的真人秀节目,拍摄前与制作组见面,回忆了他们在「GOT7的HARD CARRY 2.5」..."}'
如果这个字符串 直接使用json.loads(jsonstr)
转为json
的话,会报一个错误 json.decoder.JSONDecodeError: Invalid \escape:
因为jsonstr
包含了 Unicode
编码的字符串 同时还包含 正常的中文字符,要是直接用 jsonstr.encode('gbk').decode('unicode_escape')
,虽然里面的Unicode
字符串成功转换为了中文,但是原本是正常正文的字符串变成乱码。那么问题是: 如何仅转换里面的 Unicode
字符,而非 Unicode
字符不转换呢??
你这个出错的原因并不是编码问题,而是
\"
这种解析不了,这是 Python 字符串实现上的问题。所以,你可以尝试把这个给替换成其他字符,只需要把这段替换掉再转换就好了,例如只替换里面的\
: