python csv.dictreader未读入

python csv.dictreader未读入,python,csv,keyerror,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

我正在尝试读取我以前使用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'},因此我得到了一个keyrerror:'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()

我已经打印了路径以验证它是否正确,它确实正确,因此我不知道如何解决这个问题。

您应该使用
文件
调用
csv.DictReader()
,而不是
路径

如果将
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"])

您应该使用
文件
调用
csv.DictReader()
,而不是
路径

如果将
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"])

请删除
文件。关闭()
:使用
打开的文件将自动关闭。如果使用路径名创建读卡器,为什么要打开文件?是吗?我不知道它会自动关闭。我会纠正的,谢谢请删除
file.close()
:使用
with
打开的文件会自动关闭。如果使用路径名创建读卡器,为什么要打开文件?是吗?我不知道它会自动关闭。我会改正的,谢谢你!昨天我花了10个小时编写代码,尽管我花了将近一个小时寻找,但我没有看到那个大错误。我应该多休息一会儿!昨天我花了10个小时编写代码,尽管我花了将近一个小时寻找,但我没有看到那个大错误。我应该经常休息