前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 中文编码 小结 ,json读写,str转换unicode,文字比较

python 中文编码 小结 ,json读写,str转换unicode,文字比较

作者头像
十四君
发布2019-11-27 23:47:23
2.3K0
发布2019-11-27 23:47:23
举报
文章被收录于专栏:Urlteam

最近用python做不少整理数据的工作,其中就包含不少关于中文处理的,所以总总结一下方便以后使用

1:json含汉字的utf编码读写

代码语言:javascript
复制
f2 = codecs.open('country_ipnum.json', mode='rb', encoding='utf-8')
c = eval(f2.read())

如此读取可以原样还原出json中的数据结构

代码语言:javascript
复制
line = json.dumps(a['features'][i]) + '\n'
    f3.write(line.decode("unicode_escape"))

在写入json的时候,可以这样每行都写入json,注意编码,可以确保把汉字写进入。

2:str和unicode转换

utf8样例:

‘asdasd’.decode(‘utf8’)

原理:

简单说来就是,python内部表示字符串用unicode(其实python内部的表示和真实的unicode是有点差别的,对我们几乎透明,可不考虑),和人交互的时候用str对象。 s.decode ——–>将s解码成unicode,参数指定的是s本来的编码方式。这个和unicode(s,encodename)是一样的。 u.encode ——–>将unicode编码成str对象,参数指定使用的编码方式。 助记:decode to unicode from parameter encode to parameter from unicode 只有decode方法和unicode构造函数可以得到unicode对象。 上述最常见的用途是比如这样的场景,我们在python源文件中指定使用编码cp936, # coding=cp936或#-*- coding:cp936 -*-或#coding:cp936的方式(不写默认是ascii编码) 这样在源文件中的str对象就是cp936编码的,我们要把这个字符串传给一个需要保存成其他编码的地方(比如xml的utf-8,excel需要的utf-16) 通常这么写: strobj.decode(“cp936”).encode(“utf-16”)

3:文字比对

先type输出其类型,然后 最好使用==进行比较

if(c[k][‘country’].decode(‘utf8’) == a[“features”][i][‘properties’][‘country_cn’]):

在这里,前部分是str的汉字编码,用decode转换成utf8.然后与后半部分原本就是unucode进行对比

原创文章,转载请注明: 转载自URl-team

本文链接地址: python 中文编码 小结 ,json读写,str转换unicode,文字比较

No related posts.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-172,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1:json含汉字的utf编码读写
  • 2:str和unicode转换
  • 3:文字比对
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档