为什么AWS Python SDK IAM Client的get_account_authorization_details方法报TypeError?
问题原因与解决方案
- 报错的核心原因是你复制的代码中
'User'|'Role'里的|是API文档用于标注可选参数值的标记语法,并非合法Python代码。文档仅用该符号表示Filter参数支持的可选值范围,你需要将需要用到的筛选值作为列表的独立元素传入,不能直接保留|符号。 - Python 3.10以下版本完全不支持字符串之间使用
|运算符,即使是3.10及以上版本,|用于字符串也不会实现多参数筛选的效果,只会触发类型错误。
正确的代码写法如下:
import boto3 import boto3.session my_session = boto3.session.Session(profile_name='US-Prod') client = my_session.client('iam') response = client.get_account_authorization_details( Filter=[ 'User', 'Role', 'Group', 'LocalManagedPolicy', 'AWSManagedPolicy' ], MaxItems=123, Marker='string' )
如果只需要筛选部分类型,仅需要在Filter列表中保留对应需要的字符串元素即可。
内容的提问来源于stack exchange,提问作者Brian G
相关产品推荐
相关产品推荐

