python 讀寫Json的中文編碼問題
讀寫json檔案:http://python3-cookbook.readthedocs.org/zh_CN/latest/c06/p02_read-write_json_data.html
首先 import json
load() loads()
dump() dumps()
一、從檔案:
json轉python資料結構:json.load
fo = open('data.json','r')data=json.load(fo)
python資料結構轉json:json.dump
fo = open('data.json','r')json.dump(data, fo)
二、python字串和json之間互相轉換:
json_str = json.dumps(data)
data = json.loads(json_str)三、json格式化輸出:
1、格式化列印 pprint
2、格式化輸出
在編碼JSON的時候,還有一些選項很有用。 如果你想獲得漂亮的格式化字串後輸出,可以使用json.dumps()
的indent引數。
它會使得輸出和pprint()函式效果類似。比如:
print(json.dumps(data, indent=4))
fo = open('data.json','r')json.dump(data, fo, indent=4)
四、帶有中文的json轉換:
jsondata= json.dumps( dics, ensure_ascii = False, indent = 4 )
在dumps方法中加入引數ensure_ascii = False,可以使dic中的中文正常轉換
2、若python的資料中既有普通字元,又有Unicode字串,上述方法則不行,還要在後面加上encode('utf-8')
手動轉換成utf-8編碼
jsondata= json.dumps( dics, ensure_ascii = False, indent = 4 ).encode('utf-8')