将单个请求组合成批量请求API PYTHON

2024-05-20 00:00:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个到API的循环中的请求,但我想优化执行速度并切换到发送批量请求

API中有分页,我们从中每页下载25条记录,这正是批量操作中的限制,您还可以在一个批量操作中发送多达25条单个请求

最后一页示例:

{
'count':'273',
'pages':11,
'page':11,
'list':[
{'product_id':'18391',
'producer_id':'3257',
'stock':{
    'stock': '0'
}
},
{'product_id':'18392',
'producer_id':'3257',
'stock':{
    'stock': '0'
}}
]
}

循环中有用于发送数据的代码:

data = {
    "stock": {
        "stock": "0"
    }
}

y = 0
for page in get_jobs():
    try:
        print(page)
        for off in json.loads(turnoff_product_request.text)['list']:
            code = page['list'][y]['product_id'].replace('"', '')
            api_url = "https://example.com/webapi/rest/products/%s" % code
            add_product = requests.request("PUT", api_url, headers=headers, json=data)
            y += 1
            time.sleep(1)
        y = 0
    except Exception:
        print(Exception)
        pass

现在是如何使用批量请求的示例%代码-必须根据产品id动态插入:

[
  {
    "id": "doesnt matter id, can be every 1 or something",
    "path": "/webapi/rest/products/%s" % code,
    "method": "PUT",
    "body": {
       "stock": {
         "stock": "0"
       }
    }
  },
  {
    "id": "doesnt matter id, can be every 1 or something",
    "path": "/webapi/rest/products/%s" % code,
    "method": "PUT",
    "body": {
       "stock": {
         "stock": "0"
       }
    }
  },
]

我不知道如何将这些产品分组,第1-10页有25个项目,最后一页可能包含较少的产品


Tags: producerrestapiid示例put产品stock