【问题标题】:Python3 CSV module and dictionaryPython3 CSV 模块和字典
【发布时间】:2012-03-26 01:49:41
【问题描述】:

对 python 相当陌生,如果这是关于学习如何使用 CSV 文件的基本问题,请原谅我。

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

for line in theReader:
    print line

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

这是 CSV 示例:

Name,Age,Goals,Passes,Fouls  
Ted,21,1,20,1  
Ben,28,5,14,4  

我现在需要创建一个字典,其中的标题作为字典键(最好跳过“名称”),然后用统计信息填充字典值。

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

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

【问题讨论】:

    标签: python csv python-3.x


    【解决方案1】:

    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'}
    

    Python 2

    在 Python 2 中,模式为 'rb'

    the_reader = DictReader(open('filename.csv', 'rb'))
    

    【讨论】:

    • 对于 Python 2 中的 csv 文件应该是 open('filename.csv','rb')。在 Python 3 中,模式只是 'r'。此外,delimiter=',' 可以删除,因为这是 csv 模块的默认设置。
    • 哦,这个很有用,以前没见过。非常感谢您的超快速回复。 (虽然它是 python2,但我对 P3 理解它)只是对于可能遇到同样问题的其他人也发现了这个其他帖子 - stackoverflow.com/questions/1898305/python-csv-into-dictionary
    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2020-07-18
    • 2014-11-07
    • 2020-12-24
    • 1970-01-01
    相关资源
    最近更新 更多