【发布时间】:2021-12-17 04:38:15
【问题描述】:
在 python 3 中,如何从 json 反序列化对象结构?
示例 json:
{ 'name': 'foo',
'some_object': { 'field1': 'bar', 'field2' : '0' },
'some_list_of_objects': [
{ 'field1': 'bar1', 'field2' : '1' },
{ 'field1': 'bar2', 'field2' : '2' },
{ 'field1': 'bar3', 'field2' : '3' },
]
}
这是我的python代码:
import json
class A:
name: str
some_object: B
some_list_of_objects: list(C)
def __init__(self, file_name):
with open(file_name, "r") as json_file:
self.__dict__ = json.load(json_file)
class B:
field1: int
field2: str
class C:
field1: int
field2: str
如何强制some_object 为B 类型和some_list_of_objects 为C 类型列表?
【问题讨论】:
-
这些课程是dataclasses吗?
-
是的,它们可能是数据类
-
不确定这是否完全符合重复的标准,但可以在here找到一些有趣的答案。
-
可以说,此时
python3是多余的。 Python 3 是 Python,因为 Python 2.7 大约一年前就已终止使用。 -
@rv.kvetch
python-dataclasses有一个特定的标签。阅读python-3.x的标签说明,看它一般不应该使用,除非是特定情况(特别是不要添加来表明代码运行的版本)