用Python打印正则表达式的结果

用Python打印正则表达式的结果,python,Python,我需要搜索用户创建的AWS策略,看看是否有一个包含用户名的策略 这是我正在使用的代码: import re def create_iam_policy(user_name,aws_account): session = boto3.Session(profile_name=aws_account) client = session.client('iam') response = client.list_policies(Scope='Local',OnlyAtta

我需要搜索用户创建的AWS策略,看看是否有一个包含用户名的策略

这是我正在使用的代码:

import re
def create_iam_policy(user_name,aws_account):
     session = boto3.Session(profile_name=aws_account)
     client = session.client('iam')
     response = client.list_policies(Scope='Local',OnlyAttached=False)
     print(str(re.search(user_name, response).group()))
但当我这样做时,我得到了这个错误:

TypeError: expected string or bytes-like object

如何正确执行此操作?

您正在搜索的是
字典或json对象
而不是
字符串
。你可能想要改变

print(str(re.search(user_name, response).group()))


响应
不是字符串,因此您无法使用
re

搜索它,您正在搜索的是
字典或json对象
而不是
字符串
。你可能想要改变

print(str(re.search(user_name, response).group()))


响应
不是字符串,因此您无法使用
re

搜索它,“用户名”来自何处?它没有在任何地方声明。
用户名
响应
的值是什么?如果从
print()
调用中删除
str()
,您会看到什么?这是一个响应:。我使用的用户名是“bluethundr”,这是对OP的一个建议:我看到了你的一些问题,它们通常缺乏基本的编程概念,对对象类型或函数应该做什么有误解,我强烈建议你在接近更高的概念之前先复习一下你的基础,否则你会继续困扰着这些问题。“IdLeBand不是人们问问题要学习的地方吗?”用户名“从哪里来?它没有在任何地方被宣布。<代码>用户名称< /COD>和<代码>响应< /代码>的值是什么?如果从
print()
调用中删除
str()
,您会看到什么?这是一个响应:。我使用的用户名是“bluethundr”,这是对OP的一个建议:我看到了你的一些问题,它们通常缺乏基本的编程概念,对对象类型或函数应该做什么有误解,我强烈建议你在接近更高的概念之前先复习一下你的基础,否则你会继续困扰着这些问题。“IdLeBand不是人们问问题要学的吗?因为JSON对象是一个字典(在这种情况下是嵌套字典),您必须知道键并使用键获取值。如果您输入一个示例响应,我将帮助您搜索用户名。您希望示例响应给您什么?我不知道你的用户名是什么。顺便说一下,响应不包含用户名。请尝试
response['ResponseMetadata']['HTTPStatusCode']
并查看结果。很抱歉,这是我发布的错误响应。这是我需要搜索的响应。我正在以下json输出中查找用户名“bluethundr:@bluethundr请勾选下面链接的boto3文档页面。响应没有名为
username
的属性。但是,如果您真的想获取用户名,它应该位于
arn
PolicyName
的末尾。请尝试下面的代码段,您应该可以获得用户名<代码>响应['Policies'][0]['PolicyName'].split('-')[-1]
响应['Policies'][0]['Arn'].split('-')[-1]
由于json对象是一个字典(在本例中是嵌套字典),您必须知道键并使用键来获取值。如果您输入一个示例响应,我将帮助您搜索用户名。您希望示例响应给您什么?我不知道你的用户名是什么。顺便说一下,响应不包含用户名。请尝试
response['ResponseMetadata']['HTTPStatusCode']
并查看结果。很抱歉,这是我发布的错误响应。这是我需要搜索的响应。我正在以下json输出中查找用户名“bluethundr:@bluethundr请勾选下面链接的boto3文档页面。响应没有名为
username
的属性。但是,如果您真的想获取用户名,它应该位于
arn
PolicyName
的末尾。请尝试下面的代码段,您应该可以获得用户名<代码>响应['Policies'][0]['PolicyName'].split('-')[-1]
响应['Policies'][0]['Arn'].split('-')[-1]