python - 在 Pandas 中为 API 发出批量请求
问题描述
我想在 API 上发出批量 PUT 请求以更新现有记录。PUT 请求的参数有两列。我会使用 pandas 从 CSV 文件中读取每个 id 作为产品 id,然后根据产品 id 发出 PUT 请求来更新记录,例如 id = 1,它的 cat_id =2 和 4,然后进行PUT 请求更新 id = 1 的记录,并添加以下 JSON。
{"categories": [{"cat_id": 2,{"cat_id":4}}]}}
CSV 文件示例
ID | cat_id |
---|---|
1 | 2,4 |
2 | 3,5,7,9 |
以下代码是我到目前为止所做的,但我仍然无法更新记录,并返回错误代码400。我的代码只取一个cat_id,如何在同一个单元格中取多个id。
import pandas as pd
import requests
from requests.structures import CaseInsensitiveDict
def bulk_update(row):
id = row['id']
cat_id = row['cat_id']
url = "https://localhost/product/"+str(id)
headers = CaseInsensitiveDict()
headers["Content-Type"] = "application/json"
data = {
"categories": [{"id": cat_id}]}
resp = requests.put(url, headers=headers, data=data)
print(resp.status_code)
data = pd.read_csv("test.csv")
data = data.apply(bulk_update, axis=1)
解决方案
推荐阅读
- if-statement - LC-3 条件句(对此不熟悉)只是寻找指导或答案
- javascript - 如何使用 Axios reactjs 获取 303 请求的响应头
- ruby-on-rails - 广告拦截器在生产中阻止附属页面,但在开发中工作正常?
- matlab - 如何在 Matlab 中定义和访问静态属性作为顶级成员?
- laravel - Laravel + Vue/axios Api 调用子域 access-control-allow-origin
- spring-boot - 在请求目标中找到无效字符时如何在springboot中自定义错误消息
- haskell - Haskell - 在不实际使用函数的情况下编码“最大”[初学者]
- kubernetes - 是否可以将整数锚转换或转换为 yaml 文件中的字符串别名?
- javascript - Javascript 书签:编码的 URI
- html - 缩放具有多个宽度和高度约束的图像