python - 如何使用 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}
解决方案
由于每一行都作为来自 的字符串列表返回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}
注意:这只是一个逻辑大纲。请根据需要通过额外的检查将其适当地放入您的代码中。
推荐阅读
- django - 管理面板中的 Django 多个用户角色
- javascript - 如何使用 props 更改 React 组件的颜色
- batch-file - 如何仅获取 MD5 哈希(批处理脚本)
- python - 使用python从左到右自动填充excel公式
- android-studio - Android AmbientLight Sensor 未获取值(返回 Null)
- django - Django推送通知:具有正确registration_id的InvalidRegistration
- api - 使用 Flutter 从 OpenWeatherMap API 获取每日天气预报
- java - Android Studio Firestore 搜索
- java - Lucene 休眠搜索
- javascript - Symfony/encore 在没有 devDependencies 的情况下无法编译