用词典列表理解列表

问题描述 投票:0回答:1

请看这个

.json
结构:

[
  {
    "name": "blabla1",
    "value": "1"
  },
  {
    "name": "blabla2",
    "value": "2"
  },
  {
    "name": "blabla3",
    "value": "3"
  }
]

我有简单的课程:

@dataclass
class Data:
    name: str = field(init=True)
    value: str = field(init=True)
    is_valid: bool = field(init=False, default=True)

我想阅读这个文件并创建这个数据类的列表。

这是我尝试过的:

v = ...

这个

v
包含词典列表(根据我这里的例子3)

data = [[(Data(name=k, value=v, is_valid=True)) for k, v in v.items()] for d in v]

这里的结果是

list
的 7 个数据
types
但对于此列表中的每个项目,我还有另一个包含 2 个数据的项目列表
type

python dictionary list-comprehension
1个回答
1
投票

添加 JSON 文件并返回数据对象列表。每个对象都是通过传递 JSON 文件中相应字典中的名称和值字段来创建的。 is_valid 字段默认设置为 True:

@dataclass
class Data:
    name: str
    value: str
    is_valid: bool = True

def read_json_file(file_path: str) -> List[Data]:
    with open(file_path, 'r') as f:
        data = json.load(f)
    return [Data(d['name'], d['value']) for d in data]
© www.soinside.com 2019 - 2024. All rights reserved.