📅  最后修改于: 2023-12-03 14:46:17.564000             🧑  作者: Mango
在 Python 中,JSON(JavaScript Object Notation)是一种常用的数据交换格式。Python 提供了内置的 json
模块用于处理 JSON 数据。JSON 可以表示字符串、数字、布尔值、列表、字典以及它们的嵌套组合。
在 Python 中使用 json
模块将 Python 对象序列化为 JSON 字符串可以实现数据的存储和传输。同样地,可以将 JSON 字符串反序列化为 Python 对象来进行数据处理和解析。
Python 中的类可以通过两种方式进行 JSON 序列化:
json.JSONEncoder
类的 default()
方法来自定义序列化行为。__dict__
方法,使类的实例对象可被直接序列化。下面的示例演示了如何序列化一个 Python 类为 JSON 字符串:
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 25)
json_string = json.dumps(person.__dict__)
print("Serialized JSON string:", json_string)
上述代码中,我们定义了一个 Person
类,其中包含名字和年龄属性。通过 json.dumps()
方法将 person.__dict__
对象转换成 JSON 字符串。输出结果如下:
Serialized JSON string: {"name": "Alice", "age": 25}
与序列化相对应,可以使用 json
模块将 JSON 字符串反序列化为 Python 类的实例对象。
下面的示例演示了如何反序列化 JSON 字符串为 Python 类的实例:
import json
json_string = '{"name": "Alice", "age": 25}'
person_dict = json.loads(json_string)
person = Person(**person_dict)
print("Deserialized person object:", person.__dict__)
上述代码使用 json.loads()
方法将 JSON 字符串转换为 Python 字典对象,并将其传递给 Person
类的构造函数来创建一个 person
对象。输出结果如下:
Deserialized person object: {'name': 'Alice', 'age': 25}
在进行类的 JSON 序列化和反序列化时,需要注意以下几点:
通过 json
模块可以方便地将 Python 类序列化为 JSON 字符串,并将 JSON 字符串反序列化为 Python 类的实例对象。这使得数据的存储和传输变得更加灵活和方便。