如何在Json对象中传递变量,同时给出HTTP post请求

2024-04-20 06:53:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图将json对象传递给我的一个url,它接受json数据。

以下工作:

payload='{"message": "hello"}'
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
r = requests.post(url, data=payload, headers=headers)

r.text给我打招呼

但是当我试图传递变量时

s="hello"
payload='{"message":' +str(s)+ '}'
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
r = requests.post(url, data=payload, headers=headers)

上面的方法不起作用。当我尝试作为JSON加载时,它也会抛出错误

payload=json.loads(payload)
JSONDecodeError: Expecting value: line 1 column 12 (char 11)

我还想把b'blahblah'作为JSON消息传递。因为传递字符串对我不起作用,所以我没有尝试传递字节格式。

请告知


Tags: jsonurlmessagehellodataapplicationtypecontent
2条回答

使用json.dumps

payloads = {"message": s}

r = requests.post(url, data=json.dumps(payloads), headers=headers)

您应该在JSON对象中的字符串周围包含双引号:

payload='{"message":"' +str(s)+ '"}'

使payload变成'{"message": "hello"}'

否则,payload将成为当前代码的'{"message": hello}'

相关问题 更多 >