2016-07-31 83 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]'選擇值(你的嵌套字典)。 –