В документации для разработчиков Foursquare упоминается, что при использовании конечной точки исследования API вернет рекомендацию или лучшие места.Таким образом, я хочу использовать конечную точку поиска, потому что я не хочу топ / список рекомендаций.
С limit = 100
и radius = 10000
, моя конечная точка исследования выглядит следующим образом;
def getNearbyVenues(names, latitudes, longitudes):
venues_list = []
for name, lat, lng in zip(names, latitudes, longitudes):
url = 'https://api.foursquare.com/v2/venues/explore?&client_id={}&client_secret={}&v={}&ll={},{}&radius={}&limit={}'.format(
client_id,
client_secret,
ver,
lat,
lng,
radius,
limit)
results = requests.get(url).json()["response"]['groups'][0]['items']
venues_list.append([(name,
lat,
lng,
v['venue']['name'],
v['venue']['categories'][0]['name'],
v['venue']['location']['lat'],
v['venue']['location']['lng']
) for v in results])
nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])
nearby_venues.columns = ['Area',
'Area_Latitude',
'Area_Longitude',
'Venue',
'Venue_Category',
'Venue_Latitude',
'Venue_Longitude'
]
return(nearby_venues)
ВЧтобы использовать конечную точку поиска, я изменил код следующим образом:
def getNearbyVenues(names, latitudes, longitudes):
venues_list = []
for name, lat, lng in zip(names, latitudes, longitudes):
url = 'https://api.foursquare.com/v2/venues/search?&client_id={}&client_secret={}&v={}&ll={},{}&radius={}&limit={}'.format(
client_id,
client_secret,
ver,
lat,
lng,
radius,
limit)
results = requests.get(url).json()["response"]['venues']
venues_list.append([(name,
lat,
lng,
v['name'],
v['categories'][0]['name'],
v['location']['lat'],
v['location']['lng']
) for v in results])
nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])
nearby_venues.columns = ['Area',
'Area_Latitude',
'Area_Longitude',
'Venue',
'Venue_Category',
'Venue_Latitude',
'Venue_Longitude'
]
return(nearby_venues)
Он продолжает выдавать ошибку, одна из которых "строковые индексы должны быть целыми числами".
Я даже проверяю ключииспользуя result['response']['venue'].keys())
, чтобы убедиться, что я использую правильный путь.
Кажется, что для поиска ['response'] ['Venue'] [index number], который я не уверен, как это зациклить ...
Есть ли решение этой проблемы, или я застрял, используя для этого исследование?