有一个字典,其中键是一个元组。
{('Feb', 'File1', '100'): {'1': 78, '2': 408, '3': 202, '4': 39},
('Feb', 'File1', '101'): {'1': 201, '2': 101, '3': 529, '4': 103},
('May', 'File1', '100'): {'1': 78, '2': 402, '3': 20, '4': 39}}
根据月份,我需要转换为嵌套字典格式
如何将上述字典转换为这种格式
{
"Feb": {
"File1": {
"100": {
"1": 78,
"2": 408,
"3": 202,
"4": 39
},
"101": {
"1": 201,
"2": 101,
"3": 529,
"4": 103
}}},
"May": {
"File1": {
"100": {
"1": 78,
"2": 402,
"3": 20,
"157": 39
}}}
}
我认为这个解决方案解决了你的问题。
raw = {('Feb', 'File1', '100'): {'1': 78, '2': 408, '3': 202, '4': 39},
('Feb', 'File1', '101'): {'1': 201, '2': 101, '3': 529, '4': 103},
('May', 'File1', '100'): {'1': 78, '2': 402, '3': 20, '4': 39}}
new = {}
for keys in raw.keys():
new[keys[0]] = {keys[1]: {keys[2]: raw[keys]}}
问候
维尼修斯
您的问题的答案在下面的链接中给出,如果您仍然有任何疑问,请回复。
创建动态嵌套计数字典
或者你可以这样做:
dict = {('Feb', 'File1', '100'): {'1': 78, '2': 408, '3': 202, '4': 39},
('Feb', 'File1', '101'): {'1': 201, '2': 101, '3': 529, '4': 103},
('May', 'File1', '100'): {'1': 78, '2': 402, '3': 20, '4': 39}}
new = {}
for u, v, w in dict:
new.setdefault(u,{}).setdefault(v, {})[w] = dict[(u, v, w)]