用python里的json.dumps转换编码

来源:互联网 发布:vr发展趋势 知乎 编辑:程序博客网 时间:2024/05/12 04:40

python编码问题真的是烦躁,每次我导入文件,比如csv,txt时,用print想看一下,只要是list,dict之类的,中文就会被转码显示,然后就会出现'\xe4\xb8\xad\xe6\x96\x87'这样的值,而json.dumps就显得十分好用了,当然了,这只是查看内容时使用就好了

下面给出代码

#coding:utf-8import jsonlist=['中文','english']for s in list:    print s,type(s)print list,type(list)print json.dumps(list,encoding='utf-8',ensure_ascii=False),type(json.dumps(list,encoding='utf-8',ensure_ascii=False))
print json.dumps(list,encoding='utf-8')
print json.dumps(list,ensure_ascii=False)

结果:

中文 <type 'str'>english <type 'str'>['\xe4\xb8\xad\xe6\x96\x87', 'english'] <type 'list'>["中文", "english"] <type 'str'>["\u4e2d\u6587", "english"]["中文", "english"]


print 输出s,s是一个str类型,显示的是中文

print list,list是一个list类型,显示的是unicode字段。

而使用了json.dumps加两个参数,则成功输出我们要的中文字段。

而里面的参数含义:第一个是传入函数的值,第二个是他的编码方式是什么,第三个则是不显示为ascii码值。

只赋值单一参数,能清楚的看出:

使用encoding参数能将unicode转变为其他编码,
使用ensure_ascii参数能够把ascii值转为自然语言.
虽然我这个例子中encoding参数用处不大,但实际操作下,我们一定要用第二个参数,编码方式也许是"GBK","utf-8“,"unicode",这都是有可能的。




0 0
原创粉丝点击