首页 > 解决方案 > 如何使一行中的最后一项成为字典的键,并将前面的项目保存为列表

问题描述

我正在努力从 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']

这就是我希望它最终看起来的样子。

标签: pythoncsvreader

解决方案


你可以这样做:

  1. 创建一个空字典your_data={}
  2. 使用 csv.reader 读取该行,它将一行中的数据项列表返回为row;
  3. 使用 .在您的 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]

推荐阅读