在发出HTTP发布请求时如何在Json对象中传递变量

时间:2018-09-14 05:57:28

标签: python json http python-requests google-cloud-functions

我正在尝试将json对象传递给我的一个接受JSON数据的URL。

以下作品:

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 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:0)

使用json.dumps

payloads = {"message": s}

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

答案 2 :(得分:0)

rec是我要打印其值的变量

// load custom JAR file
requireJar("path/to/dynamic.jar");
// use class from dynamically loaded package
var instance = new com.mydynamicpackage.MyCustomClass();