您好,我尝试使用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:“组”
答案 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。它对我有用。