代码之家  ›  专栏  ›  技术社区  ›  ct2307

如果我试图打印给定索引的CSV文件的某些列,为什么会得到KeyError?

  •  -1
  • ct2307  · 技术社区  · 2 年前

    我正在尝试用Python解析一个CSV文件。这就是我目前所拥有的。

    import csv
    import os
    
    csv_file_path = r'C:\Users\ctumbs\OneDrive\General - Vision Dataset\numbers.csv'
    
    
    with open(csv_file_path) as csv_file:
        reader = csv.DictReader(csv_file)
    
        for row in reader:
            print(row[0], row[2], row[4], row[6])
    

    现在我收到一个错误,上面写着“KeyError:0”。

    当我替换行索引并将最后一行作为 print(row) ,我可以生成输出,但列太多了。以下是我的输出示例:

    39431   568404   5849392
    34783   383392   4933983
    02941   848292   3820201
    38493   283293   3929300
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   mkrieger1 djuarezg    2 年前

    csv.DictReader 为每行返回一个字典,其中列标题用作键。

    “KeyError:0”表示没有名为“0”的列。

    如果要按列的索引而不是标题来选择列,请使用 csv.reader 相反,它为每行返回一个列表。