python处理json数据中文

(python http://www.jbxue.com/jb/python)处理json数据中的中文问题。python

python中自带了处理python的模块,使用时候直接import json便可。 使用loads方法便可将json字符串转换成python对象,对应关系以下: json

JSON     Python 编码

object   dict spa

array    list code

string   unicode 对象

number   (int) int, long utf-8

number   (real) float unicode

true     True 字符串

false    False string

null     None

但在使用json模块的时候须要注意的是对中文的处理,loads方法若是传入的字符串的编码不是UTF-8的话,须要用encoding指定字符编码。

例如:

import json
import base64
f = open("./result_diff.txt")
for l in f:
try:
    fp = l[l.find("?fp")+1 :]
    Http = fp.find("HTTP/")
    fp = fp[3:Http-1]
fp = fp.decode("gbk").encode("utf-8")
str1 = json.loads(fp, encoding="utf-8")
print str1
except Exception, e:
print str(e)

当fp中含有中文而且是gbk编码的时候,当咱们把当前行的编码改为utf8后在使用json进行解码的时候须要指定编码。 

或者这样

fp = fp.decode("gbk")

直接转成gbk编码,就能够不用指定json的编码类型,就是不用使用encoding参数。

相关文章
相关标签/搜索