1

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

我需要做的是在 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)
4

1 回答 1

0

使用字符串插值传入当前的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)

蟒蛇 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)
于 2019-01-08T21:23:07.110 回答