Skip to main content
 首页 » 编程设计

python之为什么 csv 文件的解析不会将内容分解为 'logical' 顺序

2025年05月04日14tintown

我正在尝试使用内置的 python csv 阅读器解析 csv 文件,如下所示:

sms_prices_list_url = "http://www.twilio.com/resources/rates/international-sms-rates.csv" 
sms_prices_list = requests.get(sms_prices_list_url) 
reader = csv.reader(sms_prices_list.text) 
for row in reader: 
    print row 

然而,当我这样做时,几乎所有内容都是按字符打印的,而不是按字典项或列项打印的,例如:

['C'] 
['o'] 
['u'] 
['n'] 
['t'] 
['r'] 
['y'] 
['', ''] 
[' '] 
['N'] 
['a'] 
['m'] 
['e'] 
['', ''] 
[' '] 
['R'] 
['a'] 
['t'] 
['e'] 
[] 
['', ''] 
['UNITED STATES Inbound SMS - Other'] 
['', ''] 
['0'] 

如何将这些条目分成字典列表?

请您参考如下方法:

csv.reader 期望它的参数一次产生一行文本。您正在迭代一个字符串,它一次产生一个字符。将其更改为:

reader = csv.reader(sms_prices_list.iter_lines()) 

请注意,这不会为您提供一个字典列表,而是一个可迭代的列表,因为这就是 csv.reader 的目的。此外,如果输入采用 UTF-8 以外的 Unicode 编码,它可能会中断;见the documentation有关这方面的一些提示。