python - 如何为 Python 请求有效负载创建批量 JSON?
问题描述
我有一个要添加到批量 API 请求的有效负载的项目列表。我似乎无法以正确的方式将项目添加到有效负载 JSON 中。
这就是我想要做的:
import json
fruits = ['apple','pear','banana']
headers = {
'X-Api-Key': API_KEY,
'Content-Type': 'application/json',
}
data = {
"requests": [
{
"params": {
"fruit": ["apple"]
}
},
{
"params": {
"fruit": ["pear"]
}
}
{
"params": {
"fruit": ["banana"]
}
}
]
}
json_responses = requests.post(
'https://foo.bar/api/bulk',
headers=headers,
json=data
).json()
如何将新params
项目添加到列表中每个项目的数据有效负载?
我从几年前找到了这个答案,但如果我尝试:
my_fruits = json.dumps([dict(fruit=f) for f in fruits])
然后像这样插入它,我得到错误“类型集的对象不是 JSON 可序列化的”。
我确定这是因为我在将列表转换为字典然后错误地添加它时做错了,但我有点卡住了。
编辑:澄清一下,我遇到的问题是如何遍历水果列表并在发出请求之前在字典中自动param
为它们添加一个。data
解决方案
参数在列表中。因此,要添加另一个,您需要附加到该列表中。
paramsList = data.get("requests")
for item in fruits:
paramsList.append(
{
"params" : {
"fruit" : item,
}
}
)
这应该有效。它遍历水果列表并以requests
正确的格式将它们添加到列表中。
推荐阅读
- android - 在 ExpansionPanelList 中使用 Provider
- sas - 在SAS中按组选择字符串的模式
- docker - docker + nginx + ssl 在开发环境中失败
- amazon-web-services - AWS Cloudformation 模板条件和自动扩展配置
- guidewire - 启用排序不适用于 UI 上的 PCF 列
- python - 在绝对路径中找不到文件
- reactjs - 在组件外访问 React-Native State 值
- javascript - 将属性名称传递给通用方法以获取不同的值
- python - 在 TPU 上训练时出现“不可用:套接字已关闭”错误
- compiler-construction - 计算机语言被认为是有限集,并且可以对它们执行数学上的集合操作