json資料的寫入與讀取
json模組在python有內建,常用的函數如下
函數 | 說明 |
---|---|
json.load(檔案) | 由json格式檔案載入為json資料 |
json.loads(字串) | 由json格式字串載入為json資料 |
json.dump(字串,檔案) | 將json資料寫入到檔案 |
json.dumps(字串) | 將json資料輸出為字串 |
json.detect_encoding() |
import json
str1 = '''
{
"三年乙班": [
{
"座號": 1,
"姓名": "野比大雄",
"國文": 65,
"英文": 62,
"數學": 40
},
{
"座號": 2,
"姓名": "源靜香",
"國文": 85,
"英文": 90,
"數學": 87
},
{
"座號": 3,
"姓名": "骨川小夫",
"國文": 92,
"英文": 90,
"數學": 95
},
{
"座號": 4,
"姓名": "剛田武",
"國文": 67,
"英文": 80,
"數學": 62
}
]
}
'''
datas_loads = json.loads(str1) #將str1字串變成json物件存入datas變數裡
print(type(datas_loads))
for data in datas_loads['三年乙班']: #從三年乙班把每個字典抓出來
print(data, data['姓名']) #每個字典+字典中的key(姓名)對應的value
with open("str1.json", "w", encoding="utf-8") as f:
# 因為中文不是使用ASCII編碼,所以須加上ensure_ascii=False,讓程式知道不是ASCII
json.dump(datas_loads, f, ensure_ascii=False)
with open("str1.json", "r", encoding="utf-8") as f:
datas_load = json.load(f)
print(datas_load, type(datas_load))
datas_dumps = json.dumps(datas_load, ensure_ascii=False)
print(datas_dumps, type(datas_dumps))