一、什麼是dumps函數
dumps函數是Python標準庫中的json模塊提供的功能之一。該函數可以將Python對象轉換為JSON格式的字元串,從而方便地進行數據交換和存儲。它是JSON的序列化函數。
二、dumps函數的基本用法
我們先來看看dumps函數的基本用法:
import json
# 定義一個Python對象
data = {
'name': 'John',
'age': 25,
'gender': 'male'
}
# 將Python對象轉換為JSON格式的字元串
json_data = json.dumps(data)
print(json_data)
輸出結果:
{"name": "John", "age": 25, "gender": "male"}
我們可以看到輸出結果是一個符合JSON格式的字元串,它可以被其他程序或系統所讀取和解析。
三、dumps函數的參數說明
dumps函數有幾個重要的參數需要了解:
3.1 indent參數
indent參數是用來控制輸出的JSON字元串縮進的,默認為None,即不縮進。如果需要縮進,可以將indent設置為一個整數或字元串。
例如:
# 定義一個Python對象
data = {
'name': 'John',
'age': 25,
'gender': 'male'
}
# 將Python對象轉換為縮進的JSON格式的字元串
json_data = json.dumps(data, indent=4)
print(json_data)
輸出結果:
{
"name": "John",
"age": 25,
"gender": "male"
}
3.2 ensure_ascii參數
ensure_ascii參數是用來控制是否將非ASCII字元轉義為Unicode轉義序列的,默認為True,即轉義。如果需要輸出非ASCII字元,則將ensure_ascii設置為False。
例如:
# 定義一個包含中文的Python對象
data = {
'name': '小明',
'age': 25,
'gender': 'male'
}
# 將Python對象轉換為JSON格式的字元串,不轉義中文
json_data = json.dumps(data, ensure_ascii=False)
print(json_data)
輸出結果:
{"name": "小明", "age": 25, "gender": "male"}
3.3 separators參數
separators參數是用來控制輸出的JSON字元串中分隔符的格式的,默認為(‘,’, ‘:’)。可以將其設置為其他字元序列來改變分隔符的格式。
例如:
# 定義一個Python對象
data = {
'name': 'John',
'age': 25,
'gender': 'male'
}
# 將Python對象轉換為JSON格式的字元串,使用空格作為分隔符
json_data = json.dumps(data, separators=(' ', '='))
print(json_data)
輸出結果:
{"name" = "John" "age" = 25 "gender" = "male"}
四、dumps函數的嵌套使用
我們可以通過dumps函數的嵌套使用來將含有多層嵌套的Python對象轉換為JSON格式字元串。
例如:
# 定義一個Python對象,包含多層嵌套
data = {
'name': 'John',
'age': 25,
'gender': 'male',
'hobby': {
'sports': ['basketball', 'football', 'tennis'],
'music': ['pop', 'rock']
}
}
# 將Python對象轉換為縮進的JSON格式的字元串
json_data = json.dumps(data, indent=4)
print(json_data)
輸出結果:
{
"name": "John",
"age": 25,
"gender": "male",
"hobby": {
"sports": [
"basketball",
"football",
"tennis"
],
"music": [
"pop",
"rock"
]
}
}
五、總結
dumps函數是Python標準庫json模塊提供的序列化函數,可以將Python對象轉換為JSON格式的字元串。我們可以通過dumps函數的參數來控制輸出的JSON字元串的格式和內容。在實際應用中,我們可以使用dumps函數來完成數據的存儲和傳輸等操作。
原創文章,作者:UETV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135706.html
微信掃一掃
支付寶掃一掃