Я сталкиваюсь с проблемами при переборе отсортированного вложенного словаря.Под вложенным словарем я подразумеваю словарь, который содержит другие словари, подобные этому:
{"A":
{"subA": {"Date": ["date1", "date2"],
"numDownloads": [int1, int2]}
"subB": {"Date": ["date3", "date4"],
"numDownloads": [int3, int4]}
}
"B":
{"subC": {"Date": ["date5", "date6"],
"numDownloads": [int5, int6]}
"subD": {"Date": ["date7", "date8"],
"numDownloads": [int7, int8]}
}
}
Я хотел бы выполнить итерацию для каждого ключа первого уровня (в данном случае A и B) на ключах второго уровня (subA, subB для A и subC, subD для B), отсортированные по первому значению numDownloads по возрастанию (int1, int 3 для A и int 5, int 7 для B).
Если я приведу пример того, чтоЯ хочу: Рассмотрим этот словарь:
{"A":
{"subA": {"Date": ["date1", "date2"],
"numDownloads": [100, 500]}
"subB": {"Date": ["date3", "date4"],
"numDownloads": [500, 1000]}
}
"B":
{"subC": {"Date": ["date5", "date6"],
"numDownloads": [10000, 50000]}
"subD": {"Date": ["date7", "date8"],
"numDownloads": [500, 1000]}
}
}
Я хотел бы итерировать, хотя A с subA, а затем subB, так как значение subA первое numDownloads (100) ниже, чем первое значение subB numDownloads (500), и хотя B с subDзатем subC и subC первое значение numDownloads (10000) больше, чем subD первое значение numDownloads (500).
Я пытался использовать функцию sorted () и лямбда-выражение, но не могузаставить это работать для моего случая.
for firstKey in myDict:
firstKeyData = myDict[firstKey]
for key in sorted(firstKeyData, key=lambda k: firstKeyData[k]["numDownloads"][0]):
// here, sub keys are sorted according to the first element of numDownloads
// A : subA then subB
// B : subD then subC
Вот пример файла json:
{
"Social":{
"Facebook":{
"Date":[
"2019-02-19"
],
"numDownloads":[
"100000000"
]
},
"Twitter":{
"Date":[
"2019-02-19"
],
"numDownloads":[
"100000"
]
}
},
"Instagram":{
"Date":[
"2019-02-19"
],
"numDownloads":[
"5000"
]
},
"Communication":{
"Messenger":{
"Date":[
"2019-02-19"
],
"numDownloads":[
"100000"
]
},
"Whatsapp":{
"Date":[
"2019-02-19"
],
"numDownloads":[
"50000000"
]
}
}
}
Спасибо всем