首页 > 解决方案 > 如何使用 Python 从 CSV 创建嵌套字典

问题描述

我有下面给出的 CSV 文件

CODE,PRODUCT
101,item_1
101,item_1
101,item_2
102,item_3
103,item_2
104,item_5

我需要转换成字典,如下所示

{101:{'item_1':2, 'item_2':1},
102:{'item_3':1},
103:{'item_2':1},
104:{'item_5':1}

我已使用 CSV 读取文件

import csv
def csv_reader(file_obj):
    reader = csv.reader(file_obj)
    for row in reader:
        print(" ".join(row))
if __name__ == "__main__":
    csv_path = 'g.csv'
    with open(csv_path, "r") as f_obj:
        csv_reader(f_obj)

如何转换成字典

{101:{'item_1':2, 'item_2':1},
    102:{'item_3':1},
    103:{'item_2':1},
    104:{'item_5':1}

标签: pythondictionary

解决方案


由于每一行都作为来自 的字符串列表返回csv.reader,因此您应该尝试如下:

result_dict = {}
for row in reader:
    if row[0] in result_dict:
        if row[1] in result_dict[row[0]]:
            result_dict[row[0]][row[1]] += 1
        else:
            result_dict[row[0]][row[1]] = 1
    else:
        result_dict[row[0]] = {row[1]:1}

注意:这只是一个逻辑大纲。请根据需要通过额外的检查将其适当地放入您的代码中。


推荐阅读