(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参数。