【发布时间】:2022-11-26 23:13:03
【问题描述】:
我需要能够将 CSV 文件中的多个值附加到具有三个键的字典中。密钥是 morning、midday 和 night。这些值应该来自CSV 文件的每一行。
理想情况下,它应该如下所示。
我无法使用 numpy 或 csv 模块,因此这些选项不可用。它必须在没有导入的情况下工作,我不确定字典以及如何处理它以获得我需要的输出。
这是 CSV 文件的示例:
{
'morning': {[5, 5, 10, 17, 20, 21]},
'midday': {[10, 20, 25, 15, 8, 3]},
'night': {[3, 5, 2, 7, 15, 29]}
}
这是我的代码:
time_list = []
time_dict = {}
with open('stats.csv', 'r') as data_file:
headers = data_file.readline()
for line in data_file:
Time, VS = line.split(',')
time_list.append(int(VS))
time_dict[Time] = time_dict.get(Time, 0) + int(VS)
附加到列表会产生应有的每个值,即:
[2, 3, 4, 5, 6, 7, 8]
但是对于字典,它不会单独显示它所附加的键的每个值。相反,它将获取每个键的所有值并将它们加在一起。
打印字典显示如下:
{'morning': 2097, 'midday': 1240, 'night': 1533}
我不确定如何处理这个以使字典看起来像下面这样:
{
'morning':{[5, 5, 10, 17, 20, 21]},
'midday': {[10, 20, 25, 15, 8, 3]},
'night': {[3, 5, 2, 7, 15, 29]}
}
注意:我找到的许多答案都使用 csv 模块,不幸的是我不能将其用于此。对于此解决方案,我必须不使用任何进口产品。
【问题讨论】:
-
快速评论:您的
dict实际上不是字典,因为您分配给它的值是无效的Python语法。也许,你的意思是{'morning': [5, 5, 10, 17, 20, 21], 'midday': [10, 20, 25, 15, 8, 3], 'night': [3, 5, 2, 7, 15, 29]} -
是的,这就是我的意思,很抱歉造成混淆
标签: python csv dictionary