如何为 Python 中的 POST 请求传递一个查询参数?
How can I pass a dict a query param for a POST request in Python?
我正在尝试使用字典参数发出 POST 请求。
是否可以或我必须将其转换为其他形式?
import requests
def do_random_request(self, random_dictionary: dict, random_number: int, random_name: str):
url = "https://api.random-site.com/"
params = {
"randomObject": random_dictionary,
"randomNumber": random_number,
"randomName": random_name,
}
try:
response = requests.post(url, params)
data = response.json()
except Exception as e:
print(e)
else:
return data
现在我从 API 端点收到以下错误:
{'error': '"randomObject" must be of type object'}
如果在 json 中发送请求会更好。
这应该有效
import json
import requests
def do_random_request(self, random_dictionary: dict, random_number: int, random_name: str):
random_dictionary_json = json.dumps(dict, indent = 4)
url = "https://api.random-site.com/"
params = {
"randomObject": random_dictionary_json,
"randomNumber": random_number,
"randomName": random_name,
}
try:
response = requests.post(url, params)
data = response.json()
except Exception as e:
print(e)
else:
return data
希望这有用,如果不行请评论
我终于意识到我需要将它作为 json 而不是参数传递:
def do_random_request(self, random_dictionary: dict, random_number: int, random_name: str):
url = "https://api.random-site.com/"
json = {
"randomObject": random_dictionary,
"randomNumber": random_number,
"randomName": random_name,
}
我正在尝试使用字典参数发出 POST 请求。
是否可以或我必须将其转换为其他形式?
import requests
def do_random_request(self, random_dictionary: dict, random_number: int, random_name: str):
url = "https://api.random-site.com/"
params = {
"randomObject": random_dictionary,
"randomNumber": random_number,
"randomName": random_name,
}
try:
response = requests.post(url, params)
data = response.json()
except Exception as e:
print(e)
else:
return data
现在我从 API 端点收到以下错误:
{'error': '"randomObject" must be of type object'}
如果在 json 中发送请求会更好。
这应该有效
import json
import requests
def do_random_request(self, random_dictionary: dict, random_number: int, random_name: str):
random_dictionary_json = json.dumps(dict, indent = 4)
url = "https://api.random-site.com/"
params = {
"randomObject": random_dictionary_json,
"randomNumber": random_number,
"randomName": random_name,
}
try:
response = requests.post(url, params)
data = response.json()
except Exception as e:
print(e)
else:
return data
希望这有用,如果不行请评论
我终于意识到我需要将它作为 json 而不是参数传递:
def do_random_request(self, random_dictionary: dict, random_number: int, random_name: str):
url = "https://api.random-site.com/"
json = {
"randomObject": random_dictionary,
"randomNumber": random_number,
"randomName": random_name,
}