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

标签 python csv nameerror

我正在尝试获取给定的 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):

g1_and_g2, 0.04286547, -1.45
g2_and_g2, 0.12348197, 3.00
g3_and_g4, 0.03125879, 1.89

当我在终端中运行程序时,出现错误:

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 中,如何将 CSV 文件的列写入字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20297349/

相关文章:

python - 为什么我收到 NameError : global name 'spacing' is not defined

python - 如何修复 Python 3.x 中 input() 函数中的 NameError?

python - 在 Hackerrank 中找不到 Project Euler #1 的 python 代码的边缘情况

python - 如何列出特定文件夹/包的所有 Python 要求?

python - 计算数字

python - 在python中浏览文件路径

Python Pandas 比较 CSV keyerror

ruby - 在 ruby​​ 中将 .json 转换为 .csv

ruby-on-rails - Rails 6 无法在开发中正确自动加载类(zeitwerk 模式)

python - 如何通过代码(在python中)找到网络的mtu值?