我的python字典结构是这样的:
ips[host][ip]
每行 ips[host][ip] 看起来像这样:
[host, ip, network, mask, broadcast, mac, gateway, ip_ver, status]
因此键也存储在行中。该字典经过大量处理,也用于其他更繁重的处理。一旦该字典被认为是最终的,我就必须将行输出到数据库。
由于输出优化和冲突处理等其他编程功能(例如,当存在主键冲突时自动执行什么操作),输出函数变得复杂。此外,输出功能还用于许多其他词典/表。
输出函数需要一个列表,而不是字典(这就是为什么键也在 ips 字典中)。我发送到输出函数的所有其他字典都通过这样做来工作,因为它们是列表字典:
locations = am_output.loc.values()
然而,这个ips字典是列表字典的字典。我认为这会起作用:
ips = am_output.ips.values().values()
但我收到错误:
AttributeError: 'dict_values' object has no attribute 'values'
最佳答案
一个简单的列表理解就可以了:
[y for x in ips.values() for y in x.values()]
演示:
>>> ips = {'a' : {1: 2, 3: 4},
... 'b': {'a': 'b', 'c': 'd'}}
>>> [y for x in ips.values() for y in x.values()]
[2, 4, 'b', 'd']
关于Python如何做列表字典的字典的.values().values(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45217118/