引号中的 Python 变量值

标签 python string variables variable-assignment quotes

我正在编辑一个脚本,该脚本向 openstack keystone 进行身份验证以获取 token 。 API 调用有效,但我想使用变量而不是直接值来使其更具可读性和可重用性。但问题是值必须用引号 (") 引起来,我不知道该怎么做。我找到了一些代码示例 [1]、[2] 通常在字符串中使用变量,但是我需要使用某种转义序列将值放在引号中。

目前我的字符串分配看起来像这样:

params = '{"auth":{"passwordCredentials":{"username":"nodermatt", "password":"feelfree"}, "tenantId":"4"}}'

如您所见,用户名、密码和租户 ID 的值在引号中,我希望用变量替换它们:

osuser = "nodermatt"
ospassword = "feelfree"
ostenant = "4"

params = '{"auth":{"passwordCredentials":{"username":osuser, "password":ospassword}, "tenantId":ostenant}}'

如果能解决这个“问题”我会很高兴。

PS:如果我错过了与我的问题相匹配的线程或 google 搜索结果,我将非常感谢链接。

提前致谢! 此致, 尼古拉斯

[1] Subprocess in Python Add Variables

[2] http://ubuntuforums.org/showthread.php?t=786879

最佳答案

对于这种特殊情况,最简单的解决方案是先定义一个 Python 字典,然后使用 json.dumps() 将其转换为 JSON:

osuser = "nodermatt"
ospassword = "feelfree"
ostenant = "4"

d = {"auth": 
        {"passwordCredentials": {"username": osuser, "password": ospassword},
         "tenantId": ostenant}}
params = json.dumps(d)

关于引号中的 Python 变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9905241/

相关文章:

python - Beautifulsoup HTML 解析在抓取 YouTube 时返回空列表

c - 这个C语言程序有什么问题吗?它终止了。我很难理解指针指针中的读取输入字符串

arrays - 是字符串中包含的任何数组项

python - 从 PyCharm 调试到 Visual Studio C++ 代码

python - 从列表中删除元组

python - 为什么猴子修补方法不传递对实例的引用?

c++ - 如何正确标记字符串

类之间的 Python 传递变量

java - 重用从类返回的用户输入值,而不重新请求用户输入

C: 代替从分配它的变量打印字符串?