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))

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *