gpt4 book ai didi

python - 如果将带有 None 值的 *args 传递给 namedtuple 对象,则缺少必需的位置参数

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:49 24 4
gpt4 key购买 nike

在以下情况下,当我将元组 *values 传递给 Query() 时,出现以下错误:

TypeError: __new__() missing 9 required positional arguments: 'col1', 'col2', 'col3', 'col4', 'col7', 'col9', 'col11', 'col12', and 'col14'
def map_value_to_column(values: tuple, columns: list) -> namedtuple:
Query = namedtuple("Query", columns)
return Query(*values)

很明显,这是因为一些值是 None。这里的问题是 values 是一个不可变的元组,我不想将所有值复制到列表中,所以我可以将 None 映射到其他东西,但我还没有' 找到任何其他方法来避免此错误。有没有办法让 Query(*values) 在这种情况下工作,即使我有 None 值?

注意:我绝对确定值的数量等于列的数量。只有部分值可以是 None

最佳答案

问题出在我的代码的另一部分。

我将元组列表而不是单个元组传递给函数 map_value_to_column

我只需要构建一个列表并将每个元组转换为内部的命名元组:

def map_value_to_column(values: list, columns: list) -> namedtuple:
Query = namedtuple("Query", columns)
queries = []
for value in values:
queries.append(Query(*value))
return queries

namedtuple 提供 None 类型参数没有问题。

关于python - 如果将带有 None 值的 *args 传递给 namedtuple 对象,则缺少必需的位置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57164957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com