我是在网页爬虫中遇到这个问题,尝试了半天,有两种方法,自己总结一下,并分享给大家:
例如:"\u9633" 转化为“阳”
(1)**方法一:**先通过utf-8将其转化为byte,再通过unicode_escape进行解码:
s = '\\u9633' # 第一个\是转义
print(s.encode('utf-8').decode('unicode_escape')) # 阳
需要注意的是:s中第一个反斜杠是用来转义表示第二个反斜杠的,在真实的爬虫项目中遇到的html中爬取的都是一个反斜杠,不需要手动添加反斜杠转义
(2)**方法二:**这个方式式看国外的一个大佬写的,通过json将字符串数据反序列化重载,操作方法如下:
import json
s1 = '\\u9633'
s2 = '\u9633'
print(json.loads(f'"{s1}"')) # 阳
print(json.loads(f'"{s2}"')) # 阳
这个方法的好处在于不管前面有几个反斜杠都能转换,但是需要安装json包。
希望能帮到你们!!!