首页 > 解决方案 > 使用 boto3 的变量值错误

问题描述

我正在编写代码以将机密存储在机密管理器中。这是我的代码片段:

for a in keys:
    title = a.title
    key = a.key
    secrets_manager_response = secrets_client.create_secret(
        Name = 'test',
        Description = 'Store',
        SecretString = '{"title":"key"}'

titlekey存储为SecretString而不是实际值 ( a.title, a.key)。如何获取存储在变量中的值SecretString

标签: pythonboto3

解决方案


目前,您的秘密字符串被硬编码为 openbrace、doublequote、t、i、t、l、e、doublequote、colon、doublequote、k、e、y、doublequote、closebrace。

'{"title":"key"}'

如果您使用的是 Python 3.6 或更高版本,则可以使用f-string将变量注入字符串:

f'{{"{title}":"{key}"}}'

(多余的大括号是因为字符串格式化使用大括号来表示注入点)

对于较低版本,您可以使用字符串格式:

'{{"{t}":"{k}"}}'.format(t=title, k=key)

或者,如果双括号真的困扰你,你可以使用字符串连接......

'{"' + title + '":"' + key + '"}'

推荐阅读