python - 如何创建包含信息的嵌套字典。来自 csv 文件
问题描述
我正在研究 cs50 的 pset6、DNA,我想读取一个如下所示的 csv 文件:
name,AGATC,AATG,TATC
Alice,2,8,3
Bob,4,1,5
Charlie,3,2,5
我想要创建的是一个嵌套字典,它看起来像这样:
data_dict = {
"Alice" : {
"AGATC" : 2,
"AATG" : 8,
"TATC" : 3
},
"Bob" : {
"AGATC" : 4,
"AATG" : 1,
"TATC" : 5
},
"Charlie" : {
"AGATC" : 3,
"AATG" : 2,
"TATC" : 5
}
}
所以我想用这个:
with open(argv[1]) as data_file:
for i in data_file:
(或另一种变体)循环遍历csv
文件并append
添加所有值到字典中,以便我有一个以后可以访问的数据库。
解决方案
你应该使用 python 的csv.DictReader模块
import csv
data_dict = {}
with open(argv[1]) as data_file:
reader = csv.DictReader(data_file)
for record in reader:
# `record` is a OrderedDict (type of dict) of column-name & value.
# Instead of creating the data pair as below:
# ```
# name = record["name"]
# data = {
# "AGATC": record["AGATC"],
# "AATG": record["AATG"],
# "TATC": record["TATC"],
# ...
# }
# data_dict[name] = data
# ```
# you can just delete the `name` column from `record`
name = record["name"]
del record["name"]
data_dict[name] = record
print(data_dict)
推荐阅读
- javascript - Google Apps 脚本中的“错误”对象可以访问哪些属性?
- docker - Docker 引擎内存不足
- android-jetpack-compose - ComposeView 与视图绑定
- javascript - 如何处理错误发布路由快递js
- javascript - 为什么我的网页在尝试从中下载图像后向我的服务器发送“/undefined”请求
- python - 关于 abseil 库标志的说明
- firebase - 带有 .where 条件的 Firestore 查询
- python - conda init powershell没有效果
- go - 在 golang 中实现缓存或锁定?
- c++ - CGAL::Polyhedron_3 使用 make_tetrahedron() 生成不需要的重复顶点,如何解决?