python - 试图确定一个值是否是列表的一部分
问题描述
我有一个我正在迭代的 AWS arns 列表。
我试图捕捉 arn 是否在列表中:
user_name = 'bluethundr'
for policy_arn in policy_arn_list:
print("Policy ARN: ", policy_arn)
if policy_arn == ('pol-aws-secrets-manager-' + user_name):
policy_exists = True
print("Policy exists is true.")
但是if
测试并没有发现 ARN 已经存在的事实。这是我的输出:
Policy ARN: arn:aws:iam::849355752309:policy/pol-iam
Policy ARN: arn:aws:iam::849355752309:policy/pol-rds
Policy ARN: arn:aws:iam::849355752309:policy/pol-s3
Policy ARN: arn:aws:iam::849355752309:policy/pol-aws-secrets-manager-bluethundr
我正在寻找的 ARN 是:
arn:aws:iam::849355752309:policy/pol-aws-secrets-manager-bluethundr
我可以验证 cli 上是否存在该 ARN:
aws iam list-policies --scope Local --profile=jf-dev | jq -r '.Policies[].PolicyName' | grep bluethundr
pol-aws-secrets-manager-bluethundr
这是的内容policy_arn_list
:
['arn:aws:iam::849355752309:policy/pol-aws-secrets-manager-user2',
'arn:aws:iam::849355752309:policy/pol-aws-secrets-manager-user4',
'arn:aws:iam::849355752309:policy/pol-aws-secrets-manager-bluethundr',
'arn:aws:iam::849355752309:policy/pol-s3',
'arn:aws:iam::849355752309:policy/pol-ec2',
'arn:aws:iam::849355752309:policy/pol-rds',
'arn:aws:iam::849355752309:policy/pol-iam',
'arn:aws:iam::849355752309:policy/pol-aws-secrets-manager-user1',
'arn:aws:iam::849355752309:policy/pol-aws-secrets-manager-user3']
我究竟做错了什么?为什么 if 测试没有看到我正在寻找的 ARN 已经在列表中?
解决方案
你能试一下吗
if ('pol-aws-secrets-manager-' + user_name) in str(policy_arn):
在我看来 1)policy_arn 可能不是字符串(不知道),并且 2)可能有更多的字符,而不仅仅是('pol-aws-secrets-manager-' + user_name)。如果其中任何一个是唯一的问题,那么我的解决方案应该有效。
推荐阅读
- ocaml - 如何使 Ocaml 多态变体私有
- excel - 如何在outlook中检查附加的excel文件的属性?
- mongodb - 在 Mongo 中存储每年更新的数据
- html - 导航栏布局问题(Wordpress)
- google-cloud-platform - GCP Dataflow 未在 UI 中获取步骤日志。使用 python SDK
- asp.net-core - .net core Custom oauth2 login 和 Google login api 一起出现错误
- html - div-content 可见thought div-height = 0
- mysql - 如何编写我的 sql 查询来拆分列?
- c++ - 为什么从基类继承的成员函数未定义?
- css - 何时编译 SASS