我试图将一个json对象传递给我的一个URL,它接受JSON数据。
下面的代码可以工作:
import requests
import 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消息传递,因为传递字符串对我来说不起作用,所以我没有尝试传递字节格式。
请指教
3条答案
按热度按时间oxcyiej71#
应该在JSON对象中的字符串两边加上双引号:
因此
payload
将变成'{"message": "hello"}'
。否则,
payload
将变为当前代码中的'{"message": hello}'
。bzzcjhmw2#
使用
json.dumps
:qnyhuwrf3#
rec是要打印其值的变量