python处理json数据中的中文

python中自带了处理python的模块,使用时候直接import json即可。 使用loads方法即可将json字符串转换成python对象,对应关系如下: json python object dict array list string unicode number (int) int, long number (real) float true true false false null none

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

代码如下:

import jsonimport base64f = 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 str1except exception, e:print str(e)

当fp中含有中文并且是gbk编码的时候,当我们把当前行的编码改成utf8后在使用json进行解码的时候需要指定编码。 或者这样

代码如下:

fp = fp.decode(“gbk”)

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