2017-02-20 115 views
-1

我是新來的蟒蛇..試圖讓所有的關鍵組合..讓我說我有字典d。獲取嵌套的Python字典中的所有組合鍵

d = {'edge': {'edge1': {'interface': {'interface1': {'ip': 10, 'name': 'uplink-to-x'}}, 'name': 'x'}, 'edge2': {'interface': {'interface1': {'ip': 20, 'name': 'uplink-to-y'}}, 'name': 'y'}}} 

需要輸出爲:

edge["edge1"]["name"] 
edge["edge1"]["interface"]["interface1"]["name"] 
edge["edge1"]["interface"]["interface1"]["ip"] 
edge["edge2"]["name"] 
edge["edge2"]["interface"]["interface1"]["name"] 
edge["edge2"]["interface"]["interface1"]["ip"] 

請幫助..

+2

請出示你的努力。 – Julien

回答

3

您可以通過片式元件這樣的循環:

Python3代碼

d = {'edge': {'edge1': {'interface': {'interface1': {'ip': 10, 'name': 'uplink-to-x'}}, 'name': 'x'}, 'edge2': {'interface': {'interface1': {'ip': 20, 'name': 'uplink-to-y'}}, 'name': 'y'}}} 
def nested_print(d): 
    for key in d: 
     if isinstance(d[key],dict): 
      nested_print(d[key]) 
     else: 
      print(key,d[key]) 
nested_print(d) 

輸出

ip 20 
name uplink-to-y 
name y 
ip 10 
name uplink-to-x 
name x 

N.B:我沒有發現任何元素作爲edge["edge1"]["name"]在給定字典

isinstance內置函數的文檔可以在這裏找到:https://docs.python.org/3/library/functions.html#isinstance

+0

謝謝你@ arsho –