【问题标题】:Using DictReader to read a csv file that contains a variable number of fields that have the same fieldname使用 DictReader 读取包含可变数量的具有相同字段名的字段的 csv 文件
【发布时间】:2019-06-05 20:47:52
【问题描述】:

使用 DictReader 并给出一个包含如下数据的文件:

First ,Last,fruit,fruit,fruit,fruit,fruit,fruit
Carl,Yung,apple,watermelon,,,,
Louis,Pasteur,banana,grape,mango,,,
Marie,Curie,watermelon,apple,banana,,,

如何将任何非空“水果”字段分配给列表,以便在执行以下代码时,row['fruit'] 包含该列表。

with open(csv_file) as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row['First'],row['Last'],row['fruit'], sep='--->')

【问题讨论】:

    标签: python-3.x csv dictionary


    【解决方案1】:

    如果省略字段名,则第一行中的值将用作字段名。 但您可以明确指定它。 如果一行的字段多于字段名,则将剩余数据放在一个列表中并使用restkey 指定的字段名(默认为None)存储。

    import csv
    
    with open("myfile.csv") as f:
        reader = csv.DictReader(f, fieldnames=("First", "Last"), restkey="fruit")
        for row in reader:
            print(row)
    

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2020-03-21
      • 1970-01-01
      相关资源
      最近更新 更多