2016-07-31 57 views
0

我从Web服务中获得以下JSON。如何从Python中的以下JSON获取有序集合。我想按照“订单”号码的升序来处理键值对。如何按值项目的顺序处理python字典项目?

{ 
    "key1": { 
    "order": 10, 
    "name": "somenameZ" 
    }, 
    "key2": { 
    "order": 3, 
    "name": "somenameY" 
    }, 
    "key3": { 
    "order": 8, 
    "name": "somenameX" 
    } 
} 

回答

3

排序dict.items()结果与自定义键:

ordered = sorted(outerdict.items(), key=lambda kv: kv[1]['order']) 
for key, item in ordered: 
    # ... 

如果你只需要嵌套的字典,而不是外键,你可以为dict.values()做同样的:

ordered = sorted(outerdict.values(), key=lambda v: v['order']) 
for item in ordered: 
    # ... 
+0

谢谢,完美的作品。我之前没有使用过lambda!看起来很强大。在kv:kv [1]中,这里是1? – Nemo

+1

@Nemo:'dict.items()'序列中的每个条目都是一个带有键和值的元组; 'kv [1]'选择值(你的嵌套字典)。 –