JSON (JavaScript Object Notation) 是很常用的格式, 多數用於伺服器及網頁應用程式間傳送資料。Python 內建的 json 模組可以處理 JSON 格式的檔案。
Python 讀取 JSON
用 json 模組讀取 JSON 格式十分方便, 用 json.loads() 讀取後, 會將資料以 dictionary 回傳, 例如:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/usr/bin/python import json person = '{"name": "Sam", "languages": ["English", "Chinese"]}' person_dict = json.loads(person) # Output: {'name': 'Sam', 'languages': ['English', 'Chinese']} print( person_dict) # Output: ['English', 'Chinese'] print(person_dict['languages']) |
上面的例子 person 變數是 JSON 字串, 而 person_dist 是 dictionary.
json.loads() 可以讀取 JSON 字串, 如果是從檔案直接讀取, 可以用 json.load(), 例如儲存 JSON 資料的檔案是這樣:
person.json:
1 2 3 |
{"name": "Sam", "languages": ["English", "Chinese"] } |
以下是讀取的方法:
1 2 3 4 5 6 7 8 9 |
#!/usr/bin/python import json with open('/path/to/person.json') as fp: data = json.load(fp) # Output: {'name': 'Sam', 'languages': ['English', 'Chinese']} print(data) |
json 模組的 json.dumps() 可以將資料轉換成 JSON 格式, 做法是先建立 dictionary, 再放進 json.dumps(), 例子:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/usr/bin/python import json person_dict = {'name': 'Sam', 'gender': 'M' } person_json = json.dumps(person_dict) # Output: {"name": "Sam", "gender": "M"} print(person_json) |
寫將 JSON 字串寫入檔案, 跟其他在 Python 下寫入檔案的方法一樣, 例如:
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/python import json person_dict = {'name': 'Sam', 'gender': 'M' } with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file) |
上面的例子, 會將 JSON 字串寫入檔案 person.txt.