Список API Foursquare из конечной точки исследования, но не из конечной точки поиска - PullRequest
0 голосов
/ 03 октября 2018

В документации для разработчиков 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], который я не уверен, как это зациклить ...

Есть ли решение этой проблемы, или я застрял, используя для этого исследование?

...