CRED_DATA = 'randomcred'
payload = "{\n \"password\": \"CRED_DATA\" ,\n \"username\": \"dom\\\\user\"\n}"
print(payload)
输出:
{
"password": "CRED_DATA" ,
"username": "dom\\user"
}
我尝试了双引号,单引号,{[等无法弄清楚。在双引号中的dict中有没有一种方法来调用变量?
答案 0 :(得分:3)
使用dict
和json.dump
正确生成JSON。
CRED_DATA = 'randomcred'
payload = {'password': CRED_DATA, 'username': r'dom\user'}
print(json.dumps(payload))
如果您从其他地方获取JSON值,请先对其进行解码,更新结果dict
,然后再次转储。
payload = json.loads(payload)
payload['password'] = CRED_DATA
payload = json.dumps(payload)
答案 1 :(得分:1)
您可以在Python中尝试F-Strings:
CRED_DATA = 'randomcred'
payload = F"{{\n \"password\": \"{CRED_DATA}\" ,\n \"username\": \"dom\\\\user\"\n}}"
print(payload)
输出:
{
"password": "randomcred" ,
"username": "dom\\user"
}
但是,根据CRED_DATA
的值,不能保证产生有效的JSON(感谢@chepner)。您还可以在Python中使用dict
和json.dumps()
,就像其他answer中已经提到的那样。
答案 2 :(得分:0)
你是这个意思吗?
CRED_DATA = 'randomcred'
payload = "password:",CRED_DATA
payload2 = ("\n \"username\": \"dom\\\\user\"\n}")
print(payload)
print(payload2)
答案 3 :(得分:0)
您的有效负载变量不是字典,而是字符串。我想您想对序列化的物联网进行某种形式的排序,以便通过网络或其他方式进行发送-如果您详细说明了意图,将会很有帮助。
无论如何: 如果要python解析字符串中的变量,请尝试以下操作:
payload = "{\n \"password\": \"" + CRED_DATA + "\" ,\n \"username\": \"dom\\\\user\"\n}"
...但是我个人认为使用字典和json.dumps会更好:
import json
CRED_DATA = 'randomcred'
payload = {
"password": CRED_DATA,
"username": "dom user"
}
print(json.dumps(payload, indent=4, sort_keys=True))
再次。根据您的用例,这个问题尚不清楚。