在現實生活以及軟件開發中,數據交互是必不可少的。而在數據交互過程中,JSON已成為一種較為流行的數據交換格式。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易於閱讀和編寫。在Python中,我們可以將Python對象轉換為JSON格式數據,以便進行數據交換和傳輸。
一、JSON簡介
JSON是一種輕量級的數據序列化格式,它具有易讀性、易於編寫和解析等優點。和XML相比,JSON數據格式更加簡潔、易於閱讀和解析。JSON格式數據由鍵值對組成,使用大括號表示對象,使用中括號表示數組。其中鍵和值之間使用冒號分隔,鍵值對之間使用逗號分隔。
{ "name": "Lucas", "age": 28, "gender": "male", "hobbies": ["reading", "jogging", "hiking"] }
使用Python的json模塊,我們可以將Python對象轉換為JSON格式數據,也可以將JSON格式數據轉換回Python對象。
二、Python對象轉JSON格式數據
1. 字典轉JSON
將Python字典對象轉換為JSON格式數據,可以使用json.dumps()函數。
import json data = {"name": "Lucas", "age": 28, "gender": "male", "hobbies": ["reading", "jogging", "hiking"]} json_data = json.dumps(data) print(json_data) # 輸出:{"name": "Lucas", "age": 28, "gender": "male", "hobbies": ["reading", "jogging", "hiking"]}
可選參數:
- indent:縮進空格數
- separators:分隔符
- sort_keys:是否按鍵排序
data = {"name": "Lucas", "age": 28, "gender": "male", "hobbies": ["reading", "jogging", "hiking"]} json_data = json.dumps(data, indent=4, separators=(",", ": "), sort_keys=True) print(json_data) # 輸出: # { # "age": 28, # "gender": "male", # "hobbies": [ # "reading", # "jogging", # "hiking" # ], # "name": "Lucas" # }
2. 列錶轉JSON
將Python列表對象轉換為JSON格式數據,可以使用json.dumps()函數。
import json data = ["Python", "Java", "JavaScript", "PHP"] json_data = json.dumps(data) print(json_data) # 輸出:["Python", "Java", "JavaScript", "PHP"]
可選參數同上。
3. 自定義類轉JSON
將自定義類對象轉換為JSON格式數據,需要先將對象轉換為字典,再將字典轉換為JSON格式數據。可以通過實現對象的__dict__方法來實現將對象轉換為字典的功能。
import json class Student: def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender def __dict__(self): return {"name": self.name, "age": self.age, "gender": self.gender} student = Student("Lucas", 28, "male") json_data = json.dumps(student.__dict__()) print(json_data) # 輸出:{"name": "Lucas", "age": 28, "gender": "male"}
三、JSON格式數據轉Python對象
1. JSON轉字典
將JSON格式數據轉換為Python字典對象,可以使用json.loads()函數。
import json json_data = '{"name": "Lucas", "age": 28, "gender": "male", "hobbies": ["reading", "jogging", "hiking"]}' data = json.loads(json_data) print(data) # 輸出:{'name': 'Lucas', 'age': 28, 'gender': 'male', 'hobbies': ['reading', 'jogging', 'hiking']}
2. JSON轉列表
將JSON格式數據轉換為Python列表對象,可以使用json.loads()函數。
import json json_data = '["Python", "Java", "JavaScript", "PHP"]' data = json.loads(json_data) print(data) # 輸出:['Python', 'Java', 'JavaScript', 'PHP']
3. JSON轉自定義類
將JSON格式數據轉換為自定義類對象,需要先將JSON格式數據轉換為字典,再使用字典構造器構造類對象。可通過自定義類方法實現將字典轉換為類對象的功能。
import json class Student: def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender @classmethod def from_dict(cls, d): return cls(d["name"], d["age"], d["gender"]) json_data = '{"name": "Lucas", "age": 28, "gender": "male"}' data_dict = json.loads(json_data) student = Student.from_dict(data_dict) print(student.name, student.age, student.gender) # 輸出:Lucas 28 male
總結
本文介紹了Python對象如何轉JSON格式數據,包括Python字典、列表、自定義類對象的轉換。通過本文的介紹,我們可以學會使用Python的json模塊實現Python對象和JSON格式數據之間的轉換。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/240575.html