博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 解析unicode编码的字符串
阅读量:6086 次
发布时间:2019-06-20

本文共 759 字,大约阅读时间需要 2 分钟。

hot3.png

使用python抓取页面或者web端的json时候很容易抓到一些unicode编码的字符串流。在python里边对Unicode编码的处理成了一件头疼的事。

对于string里边不含“ 引号的处理比较简单,使用eval注明引入str是unicode编码:

str1 = eval("u"+"\""+str + "\"")str1.decode('utf8')

对于包含引号的明文,需要先把引号转化为 \",然后可以进行eval函数处理。

str=str.replace("\\\"","\\\\\"") #先转化字符串中的\"str=str.replace("\"","\\\"")     #再转化 "print eval("u"+"\""+str+"\"")

对于json格式unicode的有个很奇怪的处理

python 的json 库在使用 json.loads()函数时候会默认把输入中unicode编码解析好,而不是保留原输入。

代码:

str1="{\"html\":\"\u003c\u003e\"}"s=json.loads(str1)print s["html"]输出:<>

输出<>而不是 \u003c 这也引出了一个问题:python的json库解析json不完全保留原格式,使用时候要注意。

如果想要json解析保持unicode编码比较麻烦,需要将unicode码的\改为\\,转译代码如下:

str="{\"html\":\"\u003c\"}"s=str.replace("\\u","\\\\u")s2=json.loads(s)print s2["html"]输出: \u003c

转载于:https://my.oschina.net/lemonfight/blog/666923

你可能感兴趣的文章
Swing中弹出对话框的几种方式(转)
查看>>
biz处理dao事务处理层
查看>>
毕业论文 一定要自己写 切记不可抄袭
查看>>
洗纸牌算法
查看>>
MongoDB Shell 经常使用的操作
查看>>
Linux 性能监测:Network
查看>>
MySQL: Speed of INSERT Statements
查看>>
SQL like使用 模糊查询
查看>>
java在string和int相互转化
查看>>
谁能在同一文件序列化多个对象并随机读写(反序列化)?BinaryFormatter、SoapFormatter、XmlSerializer还是BinaryReader...
查看>>
uva 1436 - Counting heaps(算)
查看>>
What qualities characterize a great PhD student
查看>>
C#中Abstract和Virtual
查看>>
编写更好的C#代码
查看>>
【数据库设计-1.1】关系的实现
查看>>
UVa 10285 - Longest Run on a Snowboard
查看>>
Android设备管理器漏洞2--禁止用户取消激活设备管理器
查看>>
codeforces Gym 100187A A. Potion of Immortality
查看>>
2016校招内推 -- 腾讯SNG前端 -- 面试经历
查看>>
HDU 4125 Moles 段树+KMP
查看>>