しかし、ネストされた辞書の多くの例が出てきましたが、私はこれを解読できません!以下はjson形式で入力し、私の望む出力は以下のようになります。 入力ディクショナリには100以上のエントリがあり、選択された変数のほんの一部(IPアドレス、Med、Activeなど)の値を抽出したいと考えています。Pythonは複雑なネストされた辞書とリストから値を抽出します
いくつかのエントリ 'のmed' のリスト内にネストされている[0,1,2等]
MED = BGP ['10 .0.0.0/16 '] [' bgpRoutePaths'] [0]。 ( 'のmed')を取得
MED = BGP ['10 .0.0.0/16 '] [' bgpRoutePaths '] [1]に.get(' のmed ')
Input:
{u'10.0.0.0/16': {u'address': u'10.0.0.0',
u'bgpAdvertisedPeerGroups': {},
u'bgpRoutePaths': [{u'asPathEntry': {u'asPath': u'65404,65315 i',
u'asPathType': None},
u'localPreference': 100,
u'med': 0,
u'nextHop': u'172.1.1.169',
u'routeType': {u'active': True,
u'atomicAggregator': False,
u'backup': False,
u'ecmp': False,
u'ecmpContributor': False,
u'ecmpHead': False,
u'queued': False,
u'stale': False,
u'suppressed': False,
u'ucmp': False,
u'valid': True},
u'weight': 0},
{u'asPathEntry': {u'asPath': u'65407 65315 65317 65000 i',
u'asPathType': None},
u'localPreference': 100,
u'med': 0,
u'nextHop': u'172.16.1.94',
u'routeType': {u'active': False,
u'atomicAggregator': False,
u'backup': False,
u'ecmp': False,
u'ecmpContributor': False,
u'ecmpHead': False,
u'queued': False,
u'stale': False,
u'suppressed': False,
u'ucmp': False,
u'valid': True},
u'weight': 0}],
u'maskLength': 16},
}
出力:
IPaddr asPath med active
10.0.0.0/16 (65404 65315 i) 0 True
10.0.0.0/16 (65407 65315 65317 65000 i) 0 False
実際の問題は何ですか? – Olaia