philhuan 发表于 2024-3-30 10:28

请问 python 如何把 json 反序列化到一个复杂的 class 里面呀?

请问 python 如何把 json 反序列化到一个复杂的 class 里面呀?

devilpanama 发表于 2024-3-30 11:39

在Python中,可以使用内置的`json`模块将JSON数据反序列化到一个复杂的class中。一种常用的方法是先将JSON数据解析成字典,然后通过自定义的类来处理字典数据的赋值操作。以下是一个示例代码,演示了如何将JSON数据反序列化到一个复杂的class中:

import json

# 自定义一个复杂的类
class Person:
    def __init__(self, name, age, address):
      self.name = name
      self.age = age
      self.address = address

    def __repr__(self):
   return f"Person(name={self.name}, age={self.age}, address={self.address})"

# JSON数据
json_data = '''
{
"name": "Alice",
"age": 30,
"address": {
    "city" :"Beijing",
    "street": "123 Main Street"
    }
}
'''

# 将JSON数据解析成字典
data_dict = json.loads(json_data)

# 创建一个Person对象并赋值
person = Person(data_dict['name'], data_dict['age'], data_dict['address'])

print(person) # 输出: Person(name=Alice, age=30, address={'city': 'Beijing', 'street': '123 Main Street'})

在上面的示例中,我们首先定义了一个`Person`类来表示一个人,然后将JSON数据解析成字典`data_dict`,最后通过赋值操作,创建了一个`Person`对象`person`并打印输出。这样就实现了将JSON数据反序列化到一个复杂的class中。

在实际应用中,可以根据需要对解析得到的字典数据进行更复杂的处理,或者使用第三方库(如`dataclasses`)来简化类的定义和属性赋值过程。
页: [1]
查看完整版本: 请问 python 如何把 json 反序列化到一个复杂的 class 里面呀?