一、什麼是json.dump?
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。Python中的json模塊可以將Python對象轉換成JSON格式的字符串,也可以將JSON格式的字符串轉換成Python對象。其中,json.dump函數可以將Python對象序列化為JSON格式字符串並將其寫入文件中。
import json
data = {'name': '張三', 'age': 18} #定義字典類型數據
with open('data.json', 'w') as f:
json.dump(data, f) #將數據序列化為JSON格式字符串並寫入文件中
二、Python對象轉換為JSON格式字符串
通過json.dumps函數可以將Python對象轉換為JSON格式的字符串。
import json
data = {'name': '張三', 'age': 18} #定義字典類型數據
json_str = json.dumps(data) #將數據序列化為JSON格式字符串
print(json_str) #輸出結果:{"name": "\u5f20\u4e09", "age": 18}
三、JSON格式字符串轉換為Python對象
通過json.loads函數可以將JSON格式的字符串轉換為Python對象。
import json
json_str = '{"name": "張三", "age": 18}' #定義JSON格式字符串
data = json.loads(json_str) #將JSON格式字符串反序列化為Python對象
print(data) #輸出結果:{'name': '張三', 'age': 18}
四、使用ensure_ascii參數控制編碼
json.dump函數在默認情況下會以ASCII編碼方式將Unicode字符編碼成反斜杠和十六進制數字的形式進行序列化。可以通過將ensure_ascii參數設置為False來禁止ASCII編碼,這樣可以保留Unicode字符。
import json
data = {'name': '張三', 'age': 18} #定義字典類型數據
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False) #禁止ASCII編碼,保留Unicode字符
五、使用indent參數控制輸出格式
默認情況下,json.dump函數輸出的JSON格式字符串是一行,可以通過將indent參數設置為一個數值來控制輸出格式。
import json
data = {'name': '張三', 'age': 18} #定義字典類型數據
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4) #將輸出格式控制為4個空格縮進
六、使用sort_keys參數控制排序
json.dump函數在默認情況下會按照字典鍵的順序進行序列化,可以通過將sort_keys參數設置為True來按照鍵的字母順序進行排序。
import json
data = {'name': '張三', 'age': 18, 'sex': 'male'} #定義字典類型數據
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, sort_keys=True) #按照鍵的字母順序進行排序
原創文章,作者:AIBA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/145481.html