问。是否可以使用 GET 请求发送 json 数据?
我想传递一些过滤参数来从数据库中读取结果
params = {'is_coming_soon': False, 'is_paid': True, 'limit': 100, 'skip': 0}
headers = {'content-type': 'application/json'}
response = requests.get(url=url, headers=headers, params=params)
在服务器端,我收到所有值作为string,
我如何请求获取正确的 bool 值而不是字符串 1。
最佳答案
要发送 json 负载,请使用 data
或 json
参数而不是 params
。首先使用 json.dumps
将 dict 转换为 json,然后根据需要仔细检查转换:
import json
payload = json.dumps(params)
print(payload) # '{"is_coming_soon": false, "is_paid": true, "limit": 100, "skip": 0}'
response = requests.get(url=url, headers=headers, data=payload)
此外,您可以像这样调试 requests
调用:
import requests
import logging
from http.client import HTTPConnection
# from httplib import HTTPConnection # Python 2
HTTPConnection.debuglevel = 1
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True
response = requests.get(url=url, headers=headers, data=payload)
关于python - 在 python GET(Method) 请求中发送 Json(包含 bool /数字)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46303885/