首页 > 解决方案 > 有没有办法将 csv 作为字典读取并在输出中添加一些字段?

问题描述

这是示例 csv 文件:

name,subject_1,subject_2,subject_3,subject_4,subject_5
Artus Syne,43,71,55,16,51
Evey Reburn,49,7,53,50,63
Giff Wickmann,63,37,21,87,9
Garrot Casetta,22,3,91,75,52
Roselle Maes,71,90,96,79,48
Torin Ziehms,71,31,83,1,25
Jaye Etock,92,9,2,78,55
Thomasina Tinkham,25,78,46,46,90
Adolphus Biernat,91,96,98,94,100
Rex Aspinell,34,75,51,38,99

我需要使用字典类似的输出:

{
    'Artus Syne': {'marks': [43.0, 71.0, 55.0, 16.0, 51.0]},
    'Evey Reburn': {'marks': [49.0, 7.0, 53.0, 50.0, 63.0]},
    'Giff Wickmann': {'marks': [63.0, 37.0, 21.0, 87.0, 9.0]},
    'Garrot Casetta': {'marks': [22.0, 3.0, 91.0, 75.0, 52.0]},
    'Roselle Maes': {'marks': [71.0, 90.0, 96.0, 79.0, 48.0]},
    'Torin Ziehms': {'marks': [71.0, 31.0, 83.0, 1.0, 25.0]},
    'Jaye Etock': {'marks': [92.0, 9.0, 2.0, 78.0, 55.0]},
    'Thomasina Tinkham': {'marks': [25.0, 78.0, 46.0, 46.0, 90.0]},
    'Adolphus Biernat': {'marks': [91.0, 96.0, 98.0, 94.0, 100.0]},
    'Rex Aspinell': {'marks': [34.0, 75.0, 51.0, 38.0, 99.0]}
}

dict_reader = {rows[0]:[rows[1],rows[2],rows[3],rows[4],rows[5]] for rows in reader}

显示以下输出:

{'Artus Syne': ['43', '71', '55', '16', '51'], 'Evey Reburn': ['49', '7', '53', '50', '63'], 'Giff Wickmann': ['63', '37', '21', '87', '9'], 'Garrot Casetta': ['22', '3', '91', '75', '52'], 'Roselle Maes': ['71', '90', '96', '79', '48'], 'Torin Ziehms': ['71', '31', '83', '1', '25'], 'Jaye Etock': ['92', '9', '2', '78', '55'], 'Thomasina Tinkham': ['25', '78', '46', '46', '90'], 'Adolphus Biernat': ['91', '96', '98', '94', '100'], 'Rex Aspinell': ['34', '75', '51', '38', '99']}

如何'marks'在键值对的输出之间添加?

标签: pythondictionary

解决方案


dict_reader = {rows[0]:{"marks": [rows[1],rows[2],rows[3],rows[4],rows[5]]} for rows in reader} # ??

该行在您的键和值列表之间添加“标记”。


推荐阅读