首页 > 解决方案 > 如何将列表作为参数传递给数据类?TypeError: __init__() 缺少必需的位置参数

问题描述

我试过这个

from dataclasses import dataclass
import pandas as pd

@dataclass
class First:
    code_event: str
    code_event_system: str
    company_id: int
    date_event: str
    date_event_real: str
    ecode_class: str
......

d = pd.read_json('my.json', lines=True)
a = d.values.tolist()

的输出

[['S1933190', 'STATIC', 3, '2020-05-26 16:30:00.000', '2020-05-26 16:30:00.000', 525065, 86393, '',......]]

此刻,我的想法是将列表作为参数。

p = First(a)

我得到了类型错误

TypeError: __init__() missing 30 required positional arguments: 'code_event_system', 'company_id',

从终端

>>> len(a)
1
>>> len(a[0])
30

如何解决这个问题?

标签: pythonpython-dataclasses

解决方案


您可以通过执行以下操作来实例化具有参数列表的类:First(*a)

号只是将列表解包a到类构造函数的参数中First


推荐阅读