返回多个项目

时间:2018-11-01 16:42:59

标签: python sdk ebay ebay-api

事实上,我是python的新手,这是我的第一个python项目。我正在使用ebaysdk在ebay上搜索电子产品,我希望它返回多个结果,因为我的应用程序用于比较价格,但它只返回一个结果。

请有人帮我使代码返回多个结果。

这是我的代码段。

@app.route('/ebay_page_post', methods=['GET', 'POST'])
def ebay_page_post():
    if request.method == 'POST':

        #Get json format of the text sent by Ajax
        search = request.json['search']

        try:
            #ebaysdk code starts here
            api = finding(appid='JohnOkek-hybridse-PRD-5c2330105-9bbb62f2', config_file = None)
            api_request = {'keywords':search, 'outputSelector': 'SellerInfo', 'categoryId': '293'}
            response = api.execute('findItemsAdvanced', api_request)
            soup = BeautifulSoup(response.content, 'lxml')

            totalentries = int(soup.find('totalentries').text)
            items = soup.find_all('item')

            for item in items:
                cat = item.categoryname.string.lower()
                title = item.title.string.lower().strip()
                price = int(round(float(item.currentprice.string)))
                url = item.viewitemurl.string.lower()
                seller = item.sellerusername.text.lower()
                listingtype = item.listingtype.string.lower()
                condition = item.conditiondisplayname.string.lower()

                print ('____________________________________________________________')

                #return json format of the result for Ajax processing
                return jsonify(cat + '|' + title + '|' + str(price) + '|' + url + '|' + seller + '|' + listingtype + '|' + condition)
        except ConnectionError as e:
            return jsonify(e)

3 个答案:

答案 0 :(得分:1)

根据您提供的代码,添加了可以使用的键值对集合示例:

@app.route('/ebay_page_post', methods=['GET', 'POST'])
def ebay_page_post():
    if request.method == 'POST':

        #Get json format of the text sent by Ajax
        search = request.json['search']

        try:

            #ebaysdk code starts here
            api = finding(appid='JohnOkek-hybridse-PRD-5c2330105-9bbb62f2', config_file = None)
        api_request = {'keywords':search, 'outputSelector': 'SellerInfo', 'categoryId': '293'}
        response = api.execute('findItemsAdvanced', api_request)
        soup = BeautifulSoup(response.content, 'lxml')

        totalentries = int(soup.find('totalentries').text)
        items = soup.find_all('item')

        # This will be returned
        itemsFound = {}

        # This index will be incremented 
        # each time an item is added
        index = 0

        for item in items:
            cat = item.categoryname.string.lower()
            title = item.title.string.lower().strip()
            price = int(round(float(item.currentprice.string)))
            url = item.viewitemurl.string.lower()
            seller = item.sellerusername.text.lower()
            listingtype = item.listingtype.string.lower()
            condition = item.conditiondisplayname.string.lower()

            # Adding the item found in the collection
            # index is the key and the item json is the value
            itemsFound[index] = jsonify(cat + '|' + title + '|' + str(price) + '|' + url + '|' + seller + '|' + listingtype + '|' + condition)

            # Increment the index for the next items key
            index++

        for key in itemsFound: 
            print key, ':', itemsFound[key

        # return itemsFound

    except ConnectionError as e:
        return jsonify(e)

答案 1 :(得分:0)

找到第一个项目后,将其添加到集合中。 for循环完成后,然后返回集合。

现在,一旦找到第一个,您将返回(中断迭代)

答案 2 :(得分:0)

我能够解决问题。

Click here to see how i did it

感谢所有贡献者,我对你们所有人表示感谢。