在JSON中循环(Foursquare API)。

我试图从一个JSON文件中提取数据,其中的一个片段如下。我想通过它来循环获取所有类别>名称,并得到 ,如本例中的 “便利店 “作为结果。

{
  'meta': {
    'code': 200,
    'requestId': '5ea184baedbcad001b7a3f8c'
  },
  'response': {
    'venues': [
      {
        'id': '4d03b2f6dc45a093b4b0e5c6',
        'name': 'Ozbesa Market',
        'location': {
          'address': 'Acibadem basogretmen sokak',
          'lat': 41.00622726261631,
          'lng': 29.051791450375678,
          'labeledLatLngs': [
            {
              'label': 'display',
              'lat': 41.00622726261631,
              'lng': 29.051791450375678
            }
          ],
          'distance': 92,
          'cc': 'TR',
          'country': 'Türkiye',
          'formattedAddress': [
            'Acibadem basogretmen sokak',
            'Türkiye'
          ]
        },
        'categories': [
          {
            'id': '4d954b0ea243a5684a65b473',
            'name': 'Convenience Store',
            'pluralName': 'Convenience Stores',
            'shortName': 'Convenience Store',
            'icon': {
              'prefix': 'https://ss3.4sqi.net/img/categories_v2/shops/conveniencestore_',
              'suffix': '.png'
            },
            'primary': True
          }
        ],
        'referralId': 'v-1587643627',
        'hasPerk': False
      },

这是我的for循环,请帮我修正一下。它只返回了便利店,但还有其他的如 “商场”、”住宅楼 “等。

for ven in json_data:
        for cat in ven:
                print(json_data['response']['venues'][0]['categories'][0]['name'])

先谢谢你

解决方案:

为了举例说明,我省略了一些按店铺的数据,并添加了一些类别……但正如我在评论中提到的,你没有使用你循环过的值。

json_data = {
    "meta": {"code": 200, "requestId": "5ea184baedbcad001b7a3f8c"},
    "response": {
        "venues": [
            {
                "name": "Ozbesa Market",
                "categories": [
                    {"name": "Convenience Store", "primary": True},
                    {"name": "Imaginary Category", "primary": False},
                ],
            },
            {
                "name": "Another Location",
                "categories": [
                    {"name": "Bus Station", "primary": True},
                    {"name": "Fun Fair", "primary": False},
                ],
            },
        ]
    },
}

for venue in json_data["response"]["venues"]:
    print(venue["name"])
    for cat in venue["categories"]:
        print("..", cat["name"])

会输出例如

Ozbesa Market
.. Convenience Store
.. Imaginary Category
Another Location
.. Bus Station
.. Fun Fair

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在Selenium中验证toggle是开启还是关闭?

2022-9-8 1:17:19

未分类

Emacclient在杀戮时的钩子

2022-9-8 1:17:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索