gpt4 book ai didi

python - 如何使用 DictReader 指定要标记的字段名称?

转载 作者:行者123 更新时间:2023-12-01 04:35:50 24 4
gpt4 key购买 nike

我使用 DictReader 指定字段名称,但并非所有列都有用,甚至包含数据。如何指定要标记哪些列?这是我的代码:

my_tot_reader = csv.DictReader(tot_file, delimiter=';', restkey='Empty Field')
my_tot_reader.fieldnames = ("Date",
"Pivot ID",
"Empty Field",
"Empty Field",
"Empty Field",
"Empty Field",
"Empty Field",
"Status")

最佳答案

您可以简单地对要忽略的字段重复使用相同的键;您最终将在行字典中得到一个这样的条目以及列值之一。您必须提供足够的字段来覆盖所有列,直到您想要包含的最后一个列。

我将提供序列作为关键字参数,您可以通过乘法构建元组:

my_tot_reader = csv.DictReader(
tot_file, delimiter=';', restkey='ignored',
fieldnames=("Date", "Pivot ID") + ('ignored',) * 5 + ('status',))

我使用了字段名称'ignored'

在底层使用 dict(zip(fields, columns)) ,它只会产生与匹配的列一样多的 (column, field) 组合,并且领域;如果fields 短于columns 的数量,则剩余的列将被忽略。重复的字段名称导致只有一个字典键幸存:

>>> columns = ('some_date', 'some_id', 'foo', 'bar', 'baz', 'spam', 'eggs', 'some_status', 'qux', 'flub')
>>> fields = ("Date", "Pivot ID") + ('ignored',) * 5 + ('status',)
>>> dict(zip(fields, columns))
{'Date': 'some_date', 'Pivot ID': 'some_id', 'ignored': 'eggs', 'status': 'some_status'}

然后将无关的列作为列表分配给 restkey 键。只需不要在结果行中使用 'ignored' 键,或者如果您想在其他地方使用行字典,则使用 del row['ignored'] 删除它。

关于python - 如何使用 DictReader 指定要标记的字段名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31733882/

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