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

相關文章
相關標籤/搜索