Python3 CSV模块和字典

Zen*_*tii 5 python csv python-3.x

如果这是关于学习如何使用CSV文件的基本问题,请原谅我.

import csv
theReader = csv.reader(open('filename.csv'), delimiter=',')

for line in theReader:
    print line
Run Code Online (Sandbox Code Playgroud)

所以我设法打开文件,可以在我的屏幕上打印它.但我正在尝试将数据捕获到词典中.

这是示例CSV:

Name,Age,Goals,Passes,Fouls  
Ted,21,1,20,1  
Ben,28,5,14,4  
Run Code Online (Sandbox Code Playgroud)

我现在需要创建一个带有标题的字典作为字典键(最好是跳过'name'),然后用字典值填充字典值.

然后,我将创建另一个具有名称的字典:日期(我手动添加的日期)作为键:值

我是否正确使用CSV mondule或者我应该通过标准文件类型执行此操作,并用逗号分隔行?

dm0*_*514 12

Python有一个内置的库,可以处理你的行作为字典.

DictReader不是reader.

http://docs.python.org/release/3.1.3/library/csv.html#csv.DictReader

使用它,每一行都是字典而不是列表.

Python 3

from csv import DictReader
the_reader = DictReader(open('filename.csv', 'r'))

for line_dict in the_reader:
  print(line_dict)
  # {'Name': 'Ted', 'Age': '21', 'Goals': '1', 'Passes': '20', 'Fouls': '1'}
Run Code Online (Sandbox Code Playgroud)

Python 2

在Python 2中,模式是'rb'.

the_reader = DictReader(open('filename.csv', 'rb'))
Run Code Online (Sandbox Code Playgroud)

  • 对于Python 2中的csv文件,应该是`open('filename.csv','rb')`.在Python 3中,模式只是''r'.此外,`delimiter =','`可以删除,因为这是csv模块的默认值. (4认同)