Получение категории места из результата JSON Foursquare - PullRequest
0 голосов
/ 08 октября 2019

Я использовал функцию API поиска foursquare для получения некоторых местоположений и написал функцию для получения некоторых параметров из сгенерированного результата JSON, но я сохраняю эту ошибку, когда пытаюсь получить категорию мест.

def getNearbyVenues(names, latitudes, longitudes, radius=500):

limit = 100 # limit of number of venues returned by Foursquare API
search_query = 'Asian Restaurant'
venues_list=[]
for name, lat, lng in zip(names, latitudes, longitudes):
    print(name)

    # create the API request URL
    url = 'https://api.foursquare.com/v2/venues/search?client_id={}&client_secret={}&ll={},{}&v={}&query={}&radius={}&limit={}'.format(
        CLIENT_ID, 
        CLIENT_SECRET, 
        lat, 
        lng, 
        VERSION, 
        search_query, 
        radius, 
        limit)


    # make the GET request
    results = requests.get(url).json()['response']['venues']


    # return only relevant information for each nearby venue
    venues_list.append([(
        name, 
        lat, 
        lng, 
        v['name'], 
        v['location']['lat'], 
        v['location']['lng'],  
        v['categories']['name']) for v in results])

nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])
nearby_venues.columns = ['Neighborhood', 
              'Neighborhood Latitude', 
              'Neighborhood Longitude', 
              'Venue', 
              'Venue Latitude', 
              'Venue Longitude',
              'Venue Category']

return(nearby_venues)

Это ошибка, которую я продолжаю получать!

TypeError: индексы списка должны быть целыми или кусочками, а не str

Эторезультат JSON

{'meta': {'code': 200, 'requestId': '5d9c5b4d475abd002c25c09e'},
 'response': {'venues': [{'id': '4adcda09f964a520e53321e3',
    'name': 'Hôtel de Ville de Paris (Hôtel de ville de Paris)',
    'location': {'address': "4 place de l'Hôtel de Ville",
     'crossStreet': 'Esplanade de la Libération',
     'lat': 48.85647757431556,
     'lng': 2.352372407913208,
     'labeledLatLngs': [{'label': 'display',
       'lat': 48.85647757431556,
       'lng': 2.352372407913208}],
     'distance': 65,
     'postalCode': '75004',
     'cc': 'FR',
     'city': 'Paris',
     'state': 'Île-de-France',
     'country': 'France',
     'formattedAddress': ["4 place de l'Hôtel de Ville (Esplanade de la Libération)",
      '75004 Paris',
      'France']},
    'categories': [{'id': '4bf58dd8d48988d129941735',
      'name': 'City Hall',
      'pluralName': 'City Halls',
      'shortName': 'City Hall',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1570528077',
    'hasPerk': False},
...