【问题标题】:How to loop and check if one of the list contains a certain value in Python如何循环并检查列表之一是否包含Python中的某个值
【发布时间】:2021-07-11 17:27:40
【问题描述】:

我有一个 python 脚本,其中我需要确定 ['Principal']['AWS'] 下的示例 json 输出中的任何列表是否包含根值。如果一个或多个字符串包含“root”,那么我会将变量 cross_acct 声明为“true”。

示例: arn:aws:iam::331265876530:root" -> 这包含“root”

我想我必须遍历一遍,然后检查列表中的每一个是否包含词根?您能否分享您对如何在我的代码中做到这一点的想法?谢谢!

这是代码将检查的示例 json 响应:

"Principal": {
    "AWS": [
        "arn:aws:iam::848764537201:root",
        "arn:aws:iam::331265876530:root",
        "arn:aws:iam::766754320382:role/Admin"
    ]
 }

如果 json 响应不包含列表中的任何根(如下例所示),那么我们可以将 cross_acct 的值设置为 false。

"Principal": {
    "AWS": [
        "arn:aws:iam::848764537201:role/DBA",
        "arn:aws:iam::766754320382:role/Admin"
    ]
 }

谢谢!

【问题讨论】:

  • 使用any()函数。
  • any(s.endswith(":root") for s in ...)

标签: python json string


【解决方案1】:

我会遍历列表,然后使用以下代码:

if "root" in listname[i]:
    print(listname[i])

除了打印,你显然可以做其他事情......

在这种情况下,我将是您的迭代器。

【讨论】:

    【解决方案2】:

    使用列表推导:

    print ([x for x in listname if 'root' in x])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-26
      • 2021-06-24
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      相关资源
      最近更新 更多