在项目编号数组上重复一次POST

时间:2019-01-08 21:18:40

标签: python api post

我相信,尽管遇到了障碍,但我仍在思考这个问题。我有一个POST输入,用于单个项目/ LFFormSectionLabel *sectionLabel = [LFFormSectionLabel new]; [sectionLabel addValue:header forSEL:@selector(setText:)]; [vc addSection:sectionLabel]; NSMutableArray *options = [[NSMutableArray alloc] init]; for (NSDictionary *item in self.surveydata) { NSString *addressfield = [item objectForKey:@"address_option"]; [options addObject:addressfield]; } for (int i = 0; i < options.count; i++) { NSString *field = [options objectAtIndex:i]; LFFormRowTextField *rowTextField = [LFFormRowTextField new]; rowTextField.key = @"name"; [rowTextField addValue:field forSEL:@selector(setPlaceholder:)]; [sectionLabel addRow:rowTextField]; NSLog(@"FIELD: %@", field); } 使用

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

类似<ItemID>

就地ItemIds = ["222183515503", "222183515523","222183515533"]

以下是我目前所拥有的。

<ItemID>=ItemIds</ItemID>

1 个答案:

答案 0 :(得分:0)

使用字符串插值来传递当前项目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)