【问题标题】:How can I get the Venue ID from the response如何从响应中获取场地 ID
【发布时间】:2019-05-16 06:09:05
【问题描述】:

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

【问题讨论】:

    标签: python json for-loop foursquare


    【解决方案1】:

    您的 Json 包含列表。可以获取id:

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

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

    【讨论】:

      【解决方案2】:

      itemsgroup 在您的响应 JSON 中是一个列表。这就是您收到错误的原因:“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']
      

      【讨论】:

      • 注意groups也是一个列表。
      猜你喜欢
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多