2022年6月7日 星期二

Python與 JSON格式資料的讀寫範例

之前提到過資料交換格式JSON,

今天就以實際的範例,

簡單介紹下

Python與 JSON格式資料的讀寫範例

資料交換格式JSON

JSON全名為 Javascript   Object   Notation

是一種常見的資料交換格式

JSON文件的副檔名為 .json


JSON 資料讀取

在 Python 可透過 json.loads 來讀取一個 JSON格式的字串

str_data = '{ "name": "李大朋", "age": 20, "weight": 70}'

若讀取的是一個 JSON檔案的話,則是用  json.load 來開啟

當然,在進行檔案存取之前得先要 open 檔案,

這在之前的 Python 檔案讀寫就有提及

# 讀取 JSON 檔案
with open("output.json", "r", encoding='UTF-8') as g:
print("\n 讀取 json檔案:")
h = json.load(g)
print(type(h))
print('名字:'+h['name'])

JSON 資料產生

除了讀取其他人交換的 JSON資料,

反過來自己也能夠分享 JSON 格式的資料給別人,

這時就使用 json.dumps 來產生 JSON字串

# 輸出 JSON 字串
q = json.dumps(dict_data)
print("\n json.dumps 結果:")
print(type(q))
print(eval(q))
若為檔案的話,則是使用 json.dump 產生副檔名為 .json的檔案

# 輸出 JSON 檔案
with open("output.json", "w+", encoding='UTF-8') as f:
json.dump(dict_data, f, indent=4, ensure_ascii=False)
若有中文的資料的話,

記得以 UTF-8 的方式來存取檔案,

否則就會直接以編碼的方式寫入檔案,

此處使用 json.dump 來產生 JSON檔案

結語

範例程式最後的結果如下


使用 json.dumps() 將物件轉成 JSON字串

回傳的資料型態為 str  ;

使用 json.loads() 讀取 JSON字串

則回傳的資料型態為 dict  ;

若讀寫的資料均為檔案的話,

則是使用 json.load() 與 json.dump() ;

若資料有中文,就必須使用 UTF-8 來讀寫,

避免資料顯示或者輸出的時候格式不對造成讀寫困難




沒有留言: