一、JSON簡介
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,基於ECMAScript的一個子集。
它由Douglas Crockford在2001年提出,最初是為了取代XML。
JSON採用鍵值對的方式來描述數據,相較於XML,JSON更加簡潔明了,易於使用,廣泛應用於前後端數據交互、配置文件的存儲等方面。
二、Python對JSON的支持
Python標準庫中提供了json模塊,用於編碼和解碼JSON數據。
json模塊中包含了兩種方法:dumps和loads,分別用於將Python對象編碼為JSON格式的字符串和將JSON格式的字符串解碼為Python對象。
三、Python對JSON的編碼
Python對象可以通過dumps方法將其編碼為JSON格式的字符串。
例如,將Python字典編碼為JSON字符串:
import json data = {'name': '張三', 'age': 18, 'email': 'zhangsan@example.com'} json_str = json.dumps(data) print(json_str)
運行結果為:
{"name": "\u5f20\u4e09", "age": 18, "email": "zhangsan@example.com"}
JSON字符串中的中文被編碼成了Unicode字符。
可以通過參數ensure_ascii=False來關閉對中文的Unicode編碼,這樣生成的JSON字符串中的中文將保留原樣:
json_str = json.dumps(data, ensure_ascii=False) print(json_str)
運行結果為:
{"name": "張三", "age": 18, "email": "zhangsan@example.com"}
可以通過indent參數來設置JSON字符串的縮進格式。
例如,將Python字典編碼為格式化的JSON字符串:
json_str = json.dumps(data, ensure_ascii=False, indent=4) print(json_str)
運行結果為:
{ "name": "張三", "age": 18, "email": "zhangsan@example.com" }
四、Python對JSON的解碼
可以通過loads方法將JSON格式的字符串解碼為Python對象。
例如,將JSON字符串解碼為Python字典:
json_str = '{"name": "張三", "age": 18, "email": "zhangsan@example.com"}' data = json.loads(json_str) print(data) print(data['name'])
運行結果為:
{'name': '張三', 'age': 18, 'email': 'zhangsan@example.com'} 張三
五、Python讀寫JSON文件
可以通過Python的文件操作來讀寫JSON文件。
例如,將Python字典寫入JSON文件:
data = {'name': '張三', 'age': 18, 'email': 'zhangsan@example.com'} with open('data.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4)
將JSON文件讀取為Python對象:
with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f) print(data) print(data['name'])
運行結果為:
{'name': '張三', 'age': 18, 'email': 'zhangsan@example.com'} 張三
六、小結
Python對JSON的支持非常完善,通過json模塊可以方便地編碼和解碼JSON數據,並支持讀寫JSON文件。
在使用Python進行數據交互、配置文件存儲等方面,JSON是非常常用的數據格式。
原創文章,作者:TIAGJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372813.html