繁体   English   中英

Python如何从复杂的字典中获取值?

[英]Python how to get a value from a complex dictionary?

在下面的 dict1 中,如果我不确定它在“IpPermissions”中的索引,我如何将 from_port 分配给“FromPort”的值?

对于下面的示例,我可以使用索引,但它并不总是索引 0。

from_port = dict1['IpPermissions'][0]['FromPort']

dict1 = {'Description': 'Some AWS security group', 'IpPermissions': [{'Cidr': '0.0.0.0/0', 'FromPort': '80', 'IpProtocol': 'TCP'}]}

您可以检查列表中的每个元素是否具有属性FromPort

dict1 = {'Description': 'Some AWS security group', 'IpPermissions': [{'Cidr': '0.0.0.0/0', 'FromPort': '80', 'IpProtocol': 'TCP'}]}

ip_permissions = dict1['IpPermissions']
for perm in ip_permissions:
    if 'FromPort' in perm:
        from_port = perm['FromPort']

注意:如果有多个带有'FromPort' dict,这将无法处理这种情况。

这种方法将从包含“FromPort”键的数组中提取任何字典。

tmp = [d for d in dict1['IpPermissions'] if 'FromPort' in d]
from_port = tmp[0]['FromPort']

请记住,如果 FromPort 不存在(tmp 将为空),这将失败,并且与其他答案类似,如果您没有该保证,则不会解决多个条目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM