Я работаю над извлечением из Foursquare данных, связанных с местами проведения (например: количество фотографий для каждого места, количество чаевых, рейтинг, количество оценок, лайков и т. д.). Я использовал этот код для извлечения одного идентификатора места проведения, который хорошо работает при сканировании нужных данных.
url3 = 'https://api.foursquare.com/v2/venues/{}?&client_id = {}&client_secret = {}&v = {}'.format(venue_id908, CLIENT_ID, CLIENT_SECRET, VERSION)
res1 = requests.get(url3).json()
print(res1['response']['venue'].keys())
stats = json_normalize(stats)
Однако, когда я пытаюсь создать функцию для получения данных для списка идентификаторов места проведения, я получаю сообщение об ошибке ['место проведения »]. Это функция, которую я использовал:
def getvenuesstats(i):
id_list = []
for i in zip(id_list):
url = 'https://api.foursquare.com/v2/venues/{}?&client_id = {}&client_secret = {}&v = {}'.format(i, CLIENT_ID, CLIENT_SECRET, VERSION, LIMIT)
results = requests.get(url).json()
stats = results['response']['venue']
id_list.append([(photos_count,
tipscount,
rating,
raters,
likes,
dislikes,
checkins,
v['venue']['photos']['count'],
v['venue']['stats']['tipCount'],
v['venue']['rating'],
v['venue']['ratingSignals'],
v['venue']['likes']['count'],
v['venue']['dislike'],
v['venue']['beenHere']['count']) for v in stats
])
stats_venues = pd.DataFrame([item for id_list in id_list for item in id_list])
return(stats_venues)
... который возвращает ключевую ошибку "место проведения".
Я был бы очень признателен за вашу помощь, и я почти уверен, что есть простой выход из этой ошибки. Я просто не вижу этого. Заранее огромное спасибо за то, что нашли время изучить мою проблему, и если что-то неясно, пожалуйста, дайте мне знать.
Навид, спасибо. Я проверил это заранее. Все идентификаторы действительны и должны получать данные json для всех строк.






Вы уже входите в состав venue, когда определяете статистику.
def getvenuesstats(i):
id_list = []
for i in zip(id_list):
url = 'https://api.foursquare.com/v2/venues/{}?&client_id = {}&client_secret = {}&v = {}'.format(i, CLIENT_ID, CLIENT_SECRET, VERSION, LIMIT)
results = requests.get(url).json()
stats = results['response']['venue']
id_list.append([(photos_count,
tipscount,
rating,
raters,
likes,
dislikes,
checkins,
v['photos']['count'],
v['stats']['tipCount'],
v['rating'],
v['ratingSignals'],
v['likes']['count'],
v['dislike'],
v['beenHere']['count']) for v in stats
])
stats_venues = pd.DataFrame([item for id_list in id_list for item in id_list])
return(stats_venues)
Привет, Джейкоб, Большое спасибо за ответ. Кажется, это помогло решить часть проблемы. Однако теперь я не получаю значений по всему списку идентификаторов. до сих пор пробую всевозможные версии. Спасибо хоть
Необходимые данные для некоторых идентификаторов могут не существовать, вы можете распечатать
iперед этой строкой, чтобы проверить, какой идентификатор не работает.