gpt4 book ai didi

来自 CSV IndexError 的 Python 字典

转载 作者:行者123 更新时间:2023-11-30 23:21:52 26 4
gpt4 key购买 nike

我需要比较 2 个 CSV 文件,并且我正在尝试使用 @Martijn Pieters 解决方案 Python: Comparing two CSV files and searching for similar items但我遇到了一个错误:

IndexError: list index out of range

这是我正在使用的代码,

import csv
with open('filename.csv', 'rb') as a:
indices = dict((r[2], i) for i, r in enumerate(csv.reader(a)))
print indices

filename.csv 有 10 列和 2000 行。我想对具有主机名的第 3 列进行索引,然后与其他 .csv 文件中的主机名进行匹配

type,id,hostname,os,,,,
phy,123,server1,rhel5,,,,
vir,234,server2,rhel6,,,,

我不确定为什么会出现 IndexError。请帮忙解决问题。

最佳答案

您的 csv 文件的开头或结尾可能有空行。

我能够使用以下代码重现此错误:

import csv

with open('filename.csv', 'wb') as a:
strng = """
type,id,hostname,os,,,,
phy,123,server1,rhel5,,,,
vir,234,server2,rhel6,,,,

"""
a.write(strng)

with open('filename.csv', 'rb') as a:
indices = dict((r[2], i) for i, r in enumerate(csv.reader(a)))
print indices

但是,当我删除这些空行时,代码运行完美:

import csv

with open('filename.csv', 'wb') as a:
strng = """type,id,hostname,os,,,,
phy,123,server1,rhel5,,,,
vir,234,server2,rhel6,,,,
"""
a.write(strng)

with open('filename.csv', 'rb') as a:
indices = dict((r[2], i) for i, r in enumerate(csv.reader(a)))
print indices

引用这个SO Answer关于如何跳过 csv 中的空白行。

关于来自 CSV IndexError 的 Python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com