首页 > 解决方案 > 如何从响应中获取场地 ID

问题描述

由于我刚开始使用 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
.
.
.

标签: pythonjsonfor-loopfoursquare

解决方案


您的 Json 包含列表。你可以得到身份证:

my_id = data['response']['groups']['items'][0]['venue']['categories'][0]['id']

注意:如果列表中有更多元素,则可以创建 for 循环并获取所有 ID。


推荐阅读