Python - CSV 阅读器 - 无法读取所有行



我有以下代码片段

import csv
data = {}
with open('data.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, quotechar=None)
count = 0
for row in spamreader:
data.update({row[0]:row[1]})
count+=1

print(count)
print(len(data))

文件data.csv总共包含 234611 行和 2 列。

输出为:

234611

52183

现在,读者能够阅读所有行,但无法将它们填充到data字典中。知道如何调试此问题吗? 另外,值得一提的是,csv文件包含许多非英文字符。

字典会丢弃(或者更确切地说是重写(重复键的值。您确定 csv 文件中没有重复条目吗?

如果要收集给定键的所有值,请使用defaultdict(list)

import csv
from collections import defaultdict
data = defaultdict(list)
with open('data.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, quotechar=None)
count = 0
for row in spamreader:
data[row[0]].append(row[1])
count+=1

print(count)
print(len(data))

您可能正在向字典中添加重复的键(row[0](。可以通过使用count或将count追加到row[0]来确保键是唯一的。

相关内容

  • 没有找到相关文章

最新更新