一、JSON簡介
在介紹Python中Json()函數前,我們先來了解一下Json。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易於人閱讀和編寫,同時也易於機器解析和生成。常用在在線接口傳輸數據。JSON採用鍵值對的方式存儲數據,其中鍵/值需要用雙引號引起來。
JSON使用的數據類型包括:數字、字符串、布爾、數組、對象、空值。其中對象用花括號{}括起來,數組用中括號[]括起來。例如,下面是一個Json字符串的示例:
{
"name": "John",
"age": 30,
"isMale": true,
"languages": ["Python", "JavaScript", "Java"]
}
二、Python中Json()函數的使用
Python內置了json模塊,提供了一些方法來完成Json格式的編碼和解碼。其中,Json()函數用於將Python對象轉換為Json格式的字符串。
import json
# 定義一個Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 將Python字典轉換為Json字符串
person_json = json.dumps(person)
print(person_json)
輸出結果為:
{"name": "John", "age": 30, "isMale": true, "languages": ["Python", "JavaScript", "Java"]}
三、Json()函數的參數
Json()函數有很多參數,下面我們介紹一些常用的參數。
indent:用於設置Json字符串的縮進格式。默認值為None,表示不進行縮進。
import json
# 定義一個Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 將Python字典轉換為Json格式的字符串,並設置縮進為4個空格
person_json = json.dumps(person, indent=4)
print(person_json)
輸出結果為:
{
"name": "John",
"age": 30,
"isMale": true,
"languages": [
"Python",
"JavaScript",
"Java"
]
}
sort_keys:用於指定是否按照鍵名對Json字符串進行排序。默認值為False,表示不排序。
import json
# 定義一個Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 將Python字典轉換為Json格式的字符串,並按照鍵名排序
person_json = json.dumps(person, sort_keys=True)
print(person_json)
輸出結果為:
{"age": 30, "isMale": true, "languages": ["Python", "JavaScript", "Java"], "name": "John"}
四、Json格式的解碼
除了Json()函數可以將Python對象轉換為Json格式的字符串之外,json模塊還提供了loads()函數,用於將Json格式的字符串轉換為Python對象。
import json
# 定義一個Json格式的字符串
person_json = '{"name": "John", "age": 30, "isMale": true, "languages": ["Python", "JavaScript", "Java"]}'
# 將Json格式的字符串轉換為Python字典
person_dict = json.loads(person_json)
print(person_dict)
輸出結果為:
{'name': 'John', 'age': 30, 'isMale': True, 'languages': ['Python', 'JavaScript', 'Java']}
五、Json格式的文件操作
json模塊還提供了dump()和load()函數,用於將Python對象和Json格式的文件相互轉換。
import json
# 將Python對象寫入Json格式的文件
def write_json_file(data, json_file):
# 將Python對象轉換為Json格式的字符串
data_json = json.dumps(data)
# 寫入Json字符串到文件
with open(json_file, 'w') as f:
f.write(data_json)
# 從Json格式的文件中讀取Python對象
def read_json_file(json_file):
# 從文件中讀取Json格式的字符串
with open(json_file, 'r') as f:
data_json = f.read()
# 將Json字符串轉換為Python對象
data = json.loads(data_json)
return data
# 定義一個Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 將Python字典寫入到Json格式的文件中
write_json_file(person, 'person.json')
# 從Json格式的文件中讀取Python對象
person_from_file = read_json_file('person.json')
print(person_from_file)
輸出結果為:
{'name': 'John', 'age': 30, 'isMale': True, 'languages': ['Python', 'JavaScript', 'Java']}
總結
Json格式是一種輕量級的數據交換格式,Python內置的json模塊提供了很多方法來完成Json格式的編碼和解碼。Json()函數用於將Python對象轉換為Json格式的字符串,loads()函數用於將Json格式的字符串轉換為Python對象。此外,json模塊還提供了dump()和load()函數,用於將Python對象和Json格式的文件相互轉換。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/258168.html
微信掃一掃
支付寶掃一掃