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.