Python - CSV reader - 无法读取所有行
Python - CSV reader - unable to read all lines
我有以下片段
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
现在 reader 能够读取所有行但无法将它们填充到 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]
来确保密钥是唯一的。
我有以下片段
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
现在 reader 能够读取所有行但无法将它们填充到 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]
来确保密钥是唯一的。