小编Far*_*n.K的帖子

Boto3使用旧凭据

tkinter用来创建返回安全组的gui应用程序.目前,如果您想更改凭据(例如,如果您不小心输入了错误的凭据),则必须重新启动应用程序,否则boto3将继续使用旧凭据.

我不确定为什么它继续使用旧凭据,因为我使用当前输入的凭据再次运行所有内容.

这是设置环境变量和启动的代码片段boto3.如果您第一次输入正确的凭据,它的工作完全正常.

os.environ['AWS_ACCESS_KEY_ID'] = self.accessKey
os.environ['AWS_SECRET_ACCESS_KEY'] = self.secretKey

self.sts_client = boto3.client('sts')

self.assumedRoleObject = self.sts_client.assume_role(
    RoleArn=self.role,
    RoleSessionName="AssumeRoleSession1"
)

self.credentials = self.assumedRoleObject['Credentials']

self.ec2 = boto3.resource(
    'ec2',
    region_name=self.region,
    aws_access_key_id=credentials['AccessKeyId'],
    aws_secret_access_key=credentials['SecretAccessKey'],
    aws_session_token=credentials['SessionToken'],
)
Run Code Online (Sandbox Code Playgroud)

凭证变量使用以下方式设置:

self.accessKey = str(self.AWS_ACCESS_KEY_ID_Form.get())
self.secretKey = str(self.AWS_SECRET_ACCESS_KEY_Form.get())
self.role = str(self.AWS_ROLE_ARN_Form.get())
self.region = str(self.AWS_REGION_Form.get())
self.instanceID = str(self.AWS_INSTANCE_ID_Form.get())
Run Code Online (Sandbox Code Playgroud)

有没有办法在boto3不重新启动程序的情况下使用不同的凭据?

python tkinter amazon-web-services python-3.x boto3

6
推荐指数
2
解决办法
5347
查看次数

如何将深层嵌套列表转换为字符串

如果我创建一个深度嵌套的列表,像这样:

arr = [1]
for i in range(1000):
    arr = [arr]
Run Code Online (Sandbox Code Playgroud)

然后

print(arr)
Run Code Online (Sandbox Code Playgroud)

会很好,但是

str(arr)
Run Code Online (Sandbox Code Playgroud)

在超过最大递归深度的情况下失败.("%s" % arrrepr(arr)也.)

我怎么能得到打印的字符串?这种差异的根本原因是什么?

python printing recursion repr difference

5
推荐指数
1
解决办法
77
查看次数

如何在python中的另一个列表的空列表中添加新列

我有一份清单

L=[[1, 2, 3, 0, 3, 8], [4, 5, 6, 0, 3, 8], [7, 8, 9, 0, 3, 8]]
Run Code Online (Sandbox Code Playgroud)

另一个清单

col=[0,2,3]
Run Code Online (Sandbox Code Playgroud)

和一个空列表M = [].

collist具有L必须复制到的列表列的索引M.

所以M应该是[[1,3,0],[4,6,0],[7,9,0]].

我怎样才能做到这一点??我想M作为数据帧.

python list

3
推荐指数
1
解决办法
66
查看次数