我有一个arista开关的嵌套字典输出,并希望迭代这个json列表/dict,为每个接口提取以下信息。你知道吗
Interfacename(like Ethernet29/1)
和actorPortPriority(32768)
如何访问这些数据?你知道吗
我试着做:
for k, v in data.items():
print(v['interfaces'])
print(v['interfaces']['actorPortPriority']
但我没有明白。
据我所知,我有一个嵌套的dict,但实际上我没有得到它
遍历嵌套的dict
s
data
样本:
{'interfaces': {'Ethernet29/1': {'actorOperKey': '0x00c8',
'actorPortId': 117,
'actorPortPriority': 32768,
'actorPortState': {'activity': True,
'aggregation': True,
'collecting': True,
'defaulted': False,
'distributing': True,
'expired': False,
'synchronization': True,
'timeout': False},
'actorPortStatus': 'bundled',
'partnerOperKey': '0x82af',
'partnerPortId': 16643,
'partnerPortPriority': 32768,
'partnerPortState': {'activity': True,
'aggregation': True,
'collecting': True,
'defaulted': False,
'distributing': True,
'expired': False,
'synchronization': True,
'timeout': False},
'partnerSysId': '7F9B,00-23-04-ee-be-cc'},
'Ethernet30/1': {'actorOperKey': '0x00c8',
'actorPortId': 121,
'actorPortPriority': 32768,
'actorPortState': {'activity': True,
'aggregation': True,
'collecting': True,
'defaulted': False,
'distributing': True,
'expired': False,
'synchronization': True,
'timeout': False},
'actorPortStatus': 'bundled',
'partnerOperKey': '0x82af',
'partnerPortId': 259,
'partnerPortPriority': 32768,
'partnerPortState': {'activity': True,
'aggregation': True,
'collecting': True,
'defaulted': False,
'distributing': True,
'expired': False,
'synchronization': True,
'timeout': False},
'partnerSysId': '7F9B,00-23-04-ee-be-cc'}},
'markers': {'markers': ['*']}}
{'interfaces': {'Ethernet16/1': {'actorOperKey': '0x0385',
'actorPortId': 65,
'actorPortPriority': 32768,
'actorPortState': {'activity': True,
'aggregation': True,
'collecting': True,
'defaulted': False,
'distributing': True,
'expired': False,
'synchronization': True,
'timeout': False},
'actorPortStatus': 'bundled',
'partnerOperKey': '0x0001',
'partnerPortId': 49,
'partnerPortPriority': 32768,
'partnerPortState': {'activity': True,
'aggregation': True,
'collecting': True,
'defaulted': False,
'distributing': True,
'expired': False,
'synchronization': True,
'timeout': False},
'partnerSysId': '8000,28-99-3a-fa-50-fc'}},
'markers': {'markers': ['*']}}
{'interfaces': {'Ethernet11/1': {'actorOperKey': '0x0067',
'actorPortId': 45,
'actorPortPriority': 0,
'actorPortState': {'activity': False,
'aggregation': True,
'collecting': False,
'defaulted': True,
'distributing': False,
'expired': False,
'synchronization': False,
'timeout': False},
'actorPortStatus': 'noAgg',
'partnerOperKey': '0x0000',
'partnerPortId': 0,
'partnerPortPriority': 0,
'partnerPortState': {'activity': False,
'aggregation': False,
'collecting': False,
'defaulted': False,
'distributing': False,
'expired': False,
'synchronization': False,
'timeout': True},
'partnerSysId': '0000,00-00-00-00-00-00'},
'Ethernet11/2': {'actorOperKey': '0x0067',
'actorPortId': 46,
'actorPortPriority': 32768,
'actorPortState': {'activity': False,
'aggregation': True,
'collecting': False,
'defaulted': True,
'distributing': False,
'expired': False,
'synchronization': False,
'timeout': False},
'actorPortStatus': 'noAgg',
'partnerOperKey': '0x0000',
'partnerPortId': 0,
'partnerPortPriority': 0,
'partnerPortState': {'activity': False,
'aggregation': False,
'collecting': False,
'defaulted': False,
'distributing': False,
'expired': False,
'synchronization': False,
'timeout': True},
'partnerSysId': '0000,00-00-00-00-00-00'}},
'markers': {'markers': ['*']}}
想象一下这就是你输入数据的样子(因为你说的是dict/list)
我的解决方案是(如果你想在不同的目录/列表中)
如果你想在一本字典里
假设数据实际上是
list
,如下所示:您可以使用:
你与你最初的尝试非常接近。你知道吗
假设json对象的数组称为
data
。你知道吗相关问题 更多 >
编程相关推荐