我正在使用for循环从表格创建一个字典。目标是使用for循环创建一个具有嵌套键值对的字典。
该表以文本格式存在。第一行是标题,如下所示:
AAA|BBB|CCC
zzz|100|xy
zzz|50|xy
xxx|200|xy
xxx|100|xy
zzz|300|xz
zzz|400|xz
xxx|200|xz
xxx|700|xz
要通过AAA获取总数(在AAA:CCC键值对中),以下代码是成功的:
dict = {}
with open('data.txt') as table:
table.readline()
for line in table:
(AAA, BBB, CCC) = line.split("|")
dict[AAA] = dict[AAA] + int(BBB) if AAA in dict else int(BBB)
输出结果如预期:
{'zzz': 850, 'xxx': 1200}
下一步(我卡住的地方)是如何执行迭代以创建内部键,格式为:
{'zzz':{xy:150, xz:700}, 'xxx':{xy:300, xz:900}}
这是我目前的进展,但我不知道如何将insideKey插入到这个字典中:
dict = {}
new_dict = {}
with open('data.txt') as table:
table.readline()
for line in table:
(AAA, BBB, CCC) = line.split("|")
dict[AAA] = dict[AAA] + (new_dict[CCC] + int(BBB)) if CCC in new_dict else int(BBB)
我知道不能使用+添加insideKey,但是找不到做这件事的方法。
期望输出:
{'zzz':{xy:150, xz:700}, 'xxx':{xy:300, xz:900}}
xxx|200|xy xxx|100|xy
,{xxx:{ xy:?}}
应该是什么? - Mark{apple:{Kevin:300, Mike:900}}
。 - N N