gpt4 book ai didi

python - 对一系列项目编号重复单个 POST

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:56 26 4
gpt4 key购买 nike

我相信虽然遇到了障碍,但我想得太多了。我有一个用于单个项目的 POST 输入/<ItemID>使用

我需要做的是在 ItemID 列表上重复此调用

类似于 ItemIds = ["222183515503", "222183515523","222183515533"]

就位<ItemID>=ItemIds</ItemID>

以下是我目前拥有的。

import requests

url = "https://api.ebay.com/ws/api.dll"

payload = """
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n
<GetItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">\n
<RequesterCredentials>\n
<eBayAuthToken>TOKEN</eBayAuthToken>\n
</RequesterCredentials>\n
<IncludeItemSpecifics>TRUE</IncludeItemSpecifics>\n
<DetailLevel>ReturnAll</DetailLevel>\n
<ItemID>222183515503</ItemID>\n
</GetItemRequest>"
"""

headers = {
'Content-Type': "text/xml",
'X-EBAY-API-COMPATIBILITY-LEVEL': "1085",
'X-EBAY-API-SITEID': "0",
'X-EBAY-API-CALL-NAME': "GetItem"
}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

最佳答案

使用字符串插值传入当前item id并循环处理请求。下面包含一个使用 f 字符串 (Python 3.6+) 和 .format 方法的示例。

Python 3.6+

import requests

item_ids = ["222183515503", "222183515523","222183515533"]

url = "https://api.ebay.com/ws/api.dll"

def payload(item):
payload = f"""
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n
<GetItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">\n
<RequesterCredentials>\n
<eBayAuthToken>TOKEN</eBayAuthToken>\n
</RequesterCredentials>\n
<IncludeItemSpecifics>TRUE</IncludeItemSpecifics>\n
<DetailLevel>ReturnAll</DetailLevel>\n
<ItemID>{item}</ItemID>\n
</GetItemRequest>"
"""
return payload

headers = {
'Content-Type': "text/xml",
'X-EBAY-API-COMPATIBILITY-LEVEL': "1085",
'X-EBAY-API-SITEID': "0",
'X-EBAY-API-CALL-NAME': "GetItem"
}

for item in item_ids:
response = requests.request("POST", url, data=payload(item), headers=headers)
print(response.text)

Python 2 和 3

import requests

item_ids = ["222183515503", "222183515523","222183515533"]

url = "https://api.ebay.com/ws/api.dll"

def payload(item):
payload = """
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n
<GetItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">\n
<RequesterCredentials>\n
<eBayAuthToken>TOKEN</eBayAuthToken>\n
</RequesterCredentials>\n
<IncludeItemSpecifics>TRUE</IncludeItemSpecifics>\n
<DetailLevel>ReturnAll</DetailLevel>\n
<ItemID>{item}</ItemID>\n
</GetItemRequest>"
""".format(item=item)
return payload

headers = {
'Content-Type': "text/xml",
'X-EBAY-API-COMPATIBILITY-LEVEL': "1085",
'X-EBAY-API-SITEID': "0",
'X-EBAY-API-CALL-NAME': "GetItem"
}

for item in item_ids:
response = requests.request("POST", url, data=payload(item), headers=headers)
print(response.text)

关于python - 对一系列项目编号重复单个 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54099867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com