在python中,如何将CSV文件的列写入字典?

在python中,如何将CSV文件的列写入字典?,python,csv,nameerror,Python,Csv,Nameerror,我试图获取一个给定的csv文件,并将第一列定义为键,而每个键都引用一个包含2个值的数组,其中一个值位于第二列,另一个值位于第三列。最后,将列切换为行或将行切换为行不是一个选项,因为我必须处理的每个csv中都有数百行。当我在线查看时,我能找到的唯一一个关于行的语法帮助是,有没有办法处理列 以下是我尝试的代码: import csv reader = csv.reader(open('test.csv')) result = {} for row in reader: key = colu

我试图获取一个给定的csv文件,并将第一列定义为键,而每个键都引用一个包含2个值的数组,其中一个值位于第二列,另一个值位于第三列。最后,将列切换为行或将行切换为行不是一个选项,因为我必须处理的每个csv中都有数百行。当我在线查看时,我能找到的唯一一个关于行的语法帮助是,有没有办法处理列

以下是我尝试的代码:

import csv
reader = csv.reader(open('test.csv'))

result = {}
for row in reader:
    key = column0
    if key in result:
        pass
    result[key] = column1 and column2

print result
以及我正在测试的csv(test.csv):

当我在终端中运行程序时,我得到错误:

NameError: name 'g1_and_g2' is not defined
我对编程很陌生,所以非常感谢您的帮助。谢谢

编辑以添加更多信息: 预期的输出应该是一个字典,如下所示:

g1_and_g2: 0.04286547,-1.45
g2_and_g2: 0.12348197, 3.00
g3_and_g4: 0.03125879, 1.89
因此,本质上,第一列中的字符串应该是键,第二列中的整数应该是与该行中的键关联的值


此外,我正在运行python 2.7,通过阅读您的描述,我了解您的目标是打开一个csv文件,其中每行的第一项是列标题/键,后续项是对应于该键的行中的单元格值。然后你想把这些都放到字典里吗

如果该规范是正确的,那么它应该做一些类似于您正在寻找的东西

import csv
with open('test.csv', "r") as f:
    reader = csv.reader(f)
    result = {}

    for row in reader:
        key = row[0]
        result[key] = row[1:]

    print(result)

错误消息与代码完全不匹配。我怀疑你修改了这个问题的成本,以至于它不能代表你的问题。你能提供预期的输出吗?这会有帮助。如果文件中重复出现密钥,您希望执行什么行为?另外,您使用的是什么版本的Python?在Python的更高版本中有一些速记符号可能很有用。谢谢,这很有效!这绝对是一个比我之前尝试的更好、更干净的解决方案。如果这种方法通常是正确的,并且您使用的是2.7,那么更简洁的实现是
result={row[0]:row[1:]for row in reader}
我喜欢它。我认为有一个很好的理由可以证明,对于较新的程序员来说,应该远离表达密度。当有人只是想知道运动部件的功能时,简短代码的好处就不那么重要了。
import csv
with open('test.csv', "r") as f:
    reader = csv.reader(f)
    result = {}

    for row in reader:
        key = row[0]
        result[key] = row[1:]

    print(result)