(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參數。