python-2.7 - Python循环遍历列表中的嵌套字典或字典
问题描述
我有一些数据需要处理。它看起来就像字典中的字典中的字典,所有这些都存储在一个列表中!这是解析的 JSON 数据,所以我无法控制它的格式。
这是一些数据,我已经删除了很多数据,因为它无关紧要并且为简洁起见:
devices = [
{
'server.device.base.phyname': 'IEEE802.11',
'dot11.device': {
'dot11.device.associated_client_map': {
'68:96:1E:96:96:B5': '4202770DF206F63E_B5F4CE1EAB680000',
'60:30:CE:91:4A:96': '4202770DF206F63E_8D4A91D430600000',
'4C:32:75:66:96:10': '4202770DF206F63E_105F6675324C0000',
'50:6A:03:3E:0E:17': '4202770DF206F63E_170E3E036A500000',
'7C:C3:CE:A4:EC:86': '4202770DF206F63E_86ECA4A1C37C0000',
'2C:BE:08:F0:D5:A0': '4202770DF206F63E_A0D5F008BE2C0000',
'96:E7:96:76:9A:C7': '4202770DF206F63E_C79A762CE7700000',
'96:CE:75:57:E2:5A': '4202770DF206F63E_5AE2577510000000',
'34:68:95:96:3C:96': '4202770DF206F63E_C43C6A9568340000',
'6C:96:96:9D:CE:57': '4202770DF206F63E_57109DCF966C0000',
'CE:61:96:CE:B4:69': '4202770DF206F63E_69B4D2AE61900000',
'04:CE:CE:1C:CE:8C': '4202770DF206F63E_8CAF1CCE0C040000',
'2C:F0:CE:DC:D6:39': '4202770DF206F63E_39D6DCEEF02C0000'
}
}
}
]
我需要能够提取存储在“dot11.device”对中的 MAC 地址。到目前为止,我能够遍历父列表并显示所有数据:
for d in devices:
print d['dot11.device']['dot11.device.associated_client_map']
但是,这会打印整个嵌套的字典。
我真正想做的是返回一个只包含 MAC 地址的新列表(它们是字典键吗?我不确定)。
我正在使用 Python2,非常感谢任何帮助!
解决方案
是的,它们确实是键,所以答案很简单:
for d in devices:
print d['dot11.device']['dot11.device.associated_client_map'].keys()
推荐阅读
- c# - WPF 文本框绑定问题 DataItem = null?
- jquery - 将功能从按钮执行更改为自动执行
- java - Wildfly 16,注释@JsonIgnore 不起作用
- c - 我的阶乘计算代码(使用递归)最多可以工作 24,但在 c 之后显示不正确的答案。请检查
- rust - 按位运算,将 u32 与字节数组进行比较
- multithreading - TCL:thread::send 命令正在主线程中运行,而不是发送命令中提到的线程 id
- yii2 - Yii2 url 规则使用 slug 用于多个控制器,例如 domain.com/slug
- python - Python一一转换目录中的文件
- r - dplyr 未正确分组或使用先前组中的数据
- c# - 使用生产数据库作为内存数据库进行集成测试