【发布时间】:2018-08-01 15:29:04
【问题描述】:
我正在尝试使用 Stubhub 的 API 抓取一些票务库存信息,但我似乎无法弄清楚如何遍历 get 请求。
我基本上想循环多个事件。 eventid_list 是 eventid 的列表。我的代码如下:
inventory_url = 'https://api.stubhub.com/search/inventory/v2'
for eventid in eventid_list:
data = {'eventid': eventid, 'rows':500}
inventory = requests.get(inventory_url, headers=headers, params=data)
inv = inventory.json()
print(inv)
listing_df = pd.DataFrame(inv['listing'])
当我运行它时,数据框只返回一个事件的结果,而不是多个。我做错了什么?
编辑:print(inv) 输出如下内容:
{
'eventId': 102994860,
'totalListings': 82,
'totalTickets': 236,
'minQuantity': 1,
'maxQuantity': 6,
'listing': [
{
'listingId': 1297697413,
'currentPrice': {'amount': 108.58, 'currency': 'USD'},
'listingPrice': {'amount': 88.4, 'currency': 'USD'},
'sectionId': 1638686,
'row': 'E',
'quantity': 6,
'sellerSectionName': 'FRONT MEZZANINE RIGHT',
'sectionName': 'Front Mezzanine Sides',
'seatNumbers': '2,4,6,8,10,12',
'zoneId': 240236,
'zoneName': 'Front Mezzanine',
'deliveryTypeList': [5],
'deliveryMethodList': [23, 24, 25],
'isGA': 0,
'dirtyTicketInd': False,
'splitOption': '2',
'ticketSplit': '1',
'splitVector': [1, 2, 3, 4, 6],
'sellerOwnInd': 0,
'score': 0.0
},
...
{
'listingId': 1297697417,
'currentPrice': {'amount': 108.58, 'currency': 'USD'},
'listingPrice': {'amount': 88.4, 'currency': 'USD'},
'sectionId': 1638686,
'row': 'D',
'quantity': 3,
'sellerSectionName': 'FRONT MEZZANINE RIGHT',
'sectionName': 'Front Mezzanine Sides',
'seatNumbers': '2,4,6',
'zoneId': 240236,
'zoneName': 'Front Mezzanine',
'deliveryTypeList': [5],
'deliveryMethodList': [23, 24, 25],
'isGA': 0,
'dirtyTicketInd': False,
'splitOption': '2',
'ticketSplit': '1',
'splitVector': [1, 3],
'sellerOwnInd': 0,
'score': 0.0
},
]
}
【问题讨论】:
-
listing_df = pd.DataFrame(inv['listing'])在for循环之外。for eventid in eventid_list:的所有迭代都完成(并被丢弃),然后当它完成时,您收集最后一个结果。你需要一些容器insidefor循环来收集inv = inventory.json()的每个结果。只是缩进listing_df = pd.DataFrame(inv['listing'])并不能解决这个问题。 -
您可以打印
inv并用它更新您的问题吗? -
@PauloScardine 我刚刚更新了我的问题!
-
@roganjosh 我该怎么做?
-
为了重新解释@PauloScardine 的建议,他们要求某种具有代表性的输出。它是字典/列表/其他吗?我说的是“某个容器”,也许您可以将所有结果附加到
for循环内的列表中,但我们并不真正知道您在使用什么。
标签: python api web-scraping get-request