python csv.dictreader没有读取

时间:2017-05-09 21:45:40

标签: python csv keyerror

我正在尝试读取我之前使用DictWriter创建的csv文件,看起来没问题:

Long,Lat,Value
-4.46811978,36.71191819,21.836857418129924
-4.46829768,36.71214269,1.437288805738615
-4.46858762,36.71216232,1.4251383119025087
-4.46893456,36.71041284,1.4248025480555202
-4.46896851,36.71016468,0.00885256853534053

问题在于,当我尝试阅读时,我得到{'/':'h'},因此我得到一个KeyError:'Value',因为该字典中没有Value键:

with open(path,'r') as file:
    csv_file = csv.DictReader(path)
    for line in csv_file:
        print line
        values.append(line["Value"])
        lat_long.append(line["Lat"],line["Long"])
    file.close()

我已经打印出路径来验证它是否是正确的,它是,所以我迷失了如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

您应该使用csv.DictReader()而不是file来呼叫path

如果您将path传递给csv.DictReader()csv.DictReader()将解析字符串path本身,而不是位于path的文件。

以下是您的代码的正确版本:

with open(path,'r') as file:
    csv_file = csv.DictReader(file)
    for line in csv_file:
        print line
        values.append(line["Value"])
        lat_long.append(line["Lat"],line["Long"])