【问题标题】:Convert selected columns in csv to dictionary将 csv 中的选定列转换为字典
【发布时间】:2012-08-06 15:25:06
【问题描述】:

我有一个名为“存档”的 csv 文件。它作为阅读器打开。我希望为 csv 文件中的每一行创建一个字典,其值 (k,v){row[0]+row[2]:row[7]} 组成。必须有一种简单直接的方法将此 csv 转换为包含 k = row[0]+row[2]v = row[7] 的字典。

# open archive reader
farchive = open ("wv5archive.csv","rb")
archive = csv.reader(farchive, delimiter=',')

for rows in archive: 
    arch_dict = {rows[0]+rows[2]:rows[7]} 

print arch_dict 

【问题讨论】:

    标签: python csv dictionary


    【解决方案1】:

    最简单的方法是使用字典推导:

    arch_dict = {row[0]+row[2]: row[7] for row in archive}
    

    如果您使用的是旧版本的 Python:

    arch_dict = {}
    for row in archive: 
        arch_dict[row[0]+row[2]] = rows[7]
    

    【讨论】:

    • 您可以将 2.7 之前的理解写为 dict( ((row[0],row[2]), row[7]) for row in archive) - 比您的第二个选项更优雅(或 row[0]+row[2] - 随便)
    • “情人之眼”我猜。你的回答(对我来说)似乎暗示你必须创建一个空字典,如果不使用 2.7+,则迭代分配键/值 - 我们同意不是这种情况......无论如何,我 +1。
    猜你喜欢
    • 2014-04-24
    • 2021-01-28
    • 2018-06-23
    • 2020-01-03
    • 2017-11-08
    • 1970-01-01
    • 2015-06-24
    • 2014-03-01
    • 2019-02-01
    相关资源
    最近更新 更多