由于我刚开始使用Python,因此在访问密钥时遇到了一些困难。
我想遍历作为JSON响应获得的每个Foursquare场所,以获得场所ID。然后应添加场地ID作为参数,以获取场地的所有详细信息。
我已经在for循环中尝试过,但是没有用:
for a in data['response']['groups']['items']['venue']:
my_place_id = place['id']
venue_ID_resp = requests.get(url=url_venue_details,params=my_place_id)
错误消息:
for a in data['response']['groups']['items']['venue']:
TypeError: list indices must be integers or slices, not str
响应如下:
'response':{
'groups':[
{
'items':[
{
'reasons':{
'count':0,
'items':[
{
'reasonName':'globalInteractionReason',
'summary':'This ' 'spot ' 'is ' 'popular',
'type':'general'
}
]
},
'referralId':'e-0-52bf5eca498e01893b7004fb-0',
'venue':{
'categories':[
{
'icon':{
'prefix':'https://ss3.4sqi.net/img/categories_v2/travel/hostel_',
'suffix':'.png'
},
'id':'4bf58dd8d48988d1ee931735',
'name':'Hostel',
'pluralName':'Hostels',
'primary':True,
'shortName':'Hostel'
}
],
'id':'52bf5eca498e01893b7004fb',
'location':{
我只想获取场地ID,例如:
print(my_place_id)
4bf58dd8d48988d1ee931234
4bf58dd8d48988d1ee945225
4bf58dd8d48988d1ee931888
4bf58dd8d48988d1ee564563
.
.
.
答案 0 :(得分:0)
items
中的 group
是一个列表。这是您收到错误的原因:“ TypeError: list indices must be integers or slices, not str
”因为列表索引不能为字符串。
@tfw正确指出,即使组是一个列表,所以也应该是
您需要以data['response']['groups'][0]['items'][0]['venue']
的身份访问它
如果项目列表中有多个元素,那么最好遍历它们并像下面一样访问
for x in data['response']['groups']:
for y in x['items']
print y['venue']
答案 1 :(得分:0)
您的Json包含列表。您可以获得ID:
my_id = data['response']['groups']['items'][0]['venue']['categories'][0]['id']
注意:如果列表中有更多元素,则可以创建for循环并获取所有ID。