在没有for循环的情况下搜索并获取深层嵌套字典中最内层的键?

时间:2018-06-08 11:43:11

标签: python

我有一个任意嵌套的python dict,就这样;

{u'1009': {u'2017': {u'April': {
    u'Revenue': 35837,
    u'Total_users': 107,
    u'Unique_users': 79},
   u'August': {
    u'Revenue': 98958,
    u'Total_users': 314,
    u'Unique_users': 208},
   u'December': {
    u'Revenue': 123334,
    u'Total_users': 440,
    u'Unique_users': 241}},
  u'2018': {u'April': {
    u'Revenue': 4280,
    u'Total_users': 13,
    u'Unique_users': 12},
   u'February': {
    u'Revenue': 88922,
    u'Total_users': 354,
    u'Unique_users': 205},
   u'January': {
    u'Revenue': 183031,
    u'Total_users': 429,
    u'Unique_users': 239},
   u'March': {
    u'Revenue': 101068,
    u'Total_users': 359,
    u'Unique_users': 222}}
u'1051': {u'2017': {u'August': {
    u'Revenue': 10450,
    u'Total_users': 40,
    u'Unique_users': 26},
   u'July': {
    u'Revenue': 38980,
    u'Total_users': 132,
    u'Unique_users': 42},
   u'June': {
    u'Revenue': 15820,
    u'Total_users': 54,
    u'Unique_users': 36}}}}

在上面的字典中,最外面的键正在改变,但最里面的键(Revenue等)不是。如果我需要找到前5个收入值,我需要使用多个for循环并存储值。是否有任何优雅的方法可以跳过一定程度的键和/或直接搜索嵌套字典中最内层的键?

示例代码:

for key_1 in a:
    for key_2 in a[key_1]:
        for key_3 in a[key_1][key_2]:
            print {key_3:a[key_1][key_2][key_3]['Revenue']}

0 个答案:

没有答案