Skip to main content
 首页 » 编程设计

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

2025年05月04日23zengkefu

我有以下片段

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))