python - 如何使一行中的最后一项成为字典的键,并将前面的项目保存为列表
问题描述
我正在努力从 CSV 中读取行并将它们分类到多个不同的字典中。
ABW,Latin America & Caribbean,High income,Aruba
CSV 的每一行中有四个示例值。我希望 Aruba 成为键,将前三个保存为字典值的列表。
with open(filename, mode='r') as csv_file:
line_count = 0
for line in csv.DictReader(csv_file, ("country code", "region", "income", "name")):
print(line)
我不确定如何使用 DictReader 来实现这个目标。上面的代码正确地将所有内容分类到这些键中,但我不确定如何指定它们最终作为键的值以及进入列表的值。
Aruba: ['ABW','Latin America & Caribbean','High income']
这就是我希望它最终看起来的样子。
解决方案
你可以这样做:
- 创建一个空字典
your_data={}
; - 使用 csv.reader 读取该行,它将一行中的数据项列表返回为
row
; - 使用 .在您的 dict 中创建条目
your_data[row[-1]]=row[0:-1]
。
所以,像这样的东西(未经测试......):
with open(filename, mode='r') as csv_file:
line_count = 0
your_data={}
reader=csv.reader(csv_file)
for row in reader:
your_data[row[-1]]=row[0:-1]
推荐阅读
- visual-studio-code - VS Code中多个文件中的断点?
- python-2.7 - 如何将检查按钮变量正确存储在列表中,以便在程序的后续功能中识别?
- corda - 通过 build.gradle 配置 Corda Rpc Ssl 节点
- php - 如何使用http get方法将x-www-form-urlencoded数据发送到邮递员的laravel应用程序
- vb.net - VB.net 代码——显示 'System.NullReferenceException' Oledb
- node.js - Firebase 云函数在函数完成之前返回
- c# - 搜索字符串列表中的任何字符串是否在表中
- c# - 正则表达式替换字符并将文本保留在添加跨度标记内
- qa - GEE中不同位的QA
- racket - 是什么意思 '?' 在球拍文档中?