我收到此关键错误:尝试使用Foursquare API获取附近的场所时出现“群组”

时间:2020-01-30 18:38:37

标签: foursquare

您好,我尝试使用Foursquare API获取附近的场所时遇到keyerror: 'groups'。以下是我的代码:

LIMIT = 100 # limit of number of venues returned by Foursquare API


radius = 500 # define radius

venues_list = []

for lat, long, post, borough, neighborhood, hospital in zip(hospital_df['Latitude'], hospital_df['Longitude'], hospital_df['Pincode'], hospital_df['District'], hospital_df['Location'], hospital_df['Hospital_Name']):
    print(neighborhood)
    print(borough)
    url = "https://api.foursquare.com/v2/venues/explore?client_id={}&client_secret={}&v= 
    {}&ll={},{}&radius={}&limit={}".format(
        CLIENT_ID,
        CLIENT_SECRET,
        VERSION,
        lat,
        long,
        radius, 
        LIMIT)
    results = requests.get(url).json()["response"]['groups'][0]['items']
    venues_list.append([(
            post, 
            borough,
            neighborhood,
            hospital,
            lat, 
            lng, 
            v['venue']['name'], 
            v['venue']['location']['lat'], 
            v['venue']['location']['lng'],  
            v['venue']['categories'][0]['name']) for v in results])

nearby_venues = pd.DataFrame([item for venue_list in venues_list for item in venue_list])
nearby_venues.columns = ['PostalCode', 'Borough', 'Neighborhood', 'Hospital', 'Neighborhood_Latitude', 'Neighborhood_Longitude', 'VenueName', 'VenueLatitude', 'VenueLongitude', 'VenueCategory']

我一直收到以下错误:

KeyError:“组”

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题“ KeyError:'groups'”,其代码非常相似。我发现的是,虽然我构建的URL变量的格式不正确(我为categoryId添加了过滤器,但为此值传递了格式错误的变量)。

一旦我更正了这个公式,“ results = requests.get(url).json()[” response“] ['groups'] [0 ['items']”就能够正确处理。

我的猜测是,当我提交格式错误的URL时,JSON返回是一条错误消息,其中没有包含“组”的正确格式。

答案 1 :(得分:1)

在我的情况下,这是由于超出了对Foursquare API的免费调用次数。我有非常相似的代码,这些代码是在线课程的一部分。我运行了好几天没有任何问题。然后,突然我几次出现“组”键错误。然后,我停止工作,第二天早上代码运行良好。然后,打了几次电话,我又得到了错误。所以我检查了.json文件,它不包含键“ groups”,因为它基本上是一个.json文件,告诉我超出了配额。

答案 2 :(得分:0)

尝试从Foursquare帐户重置您的CLIENT SECRET。它对我有用。