【问题标题】:Logic of filter json parsing?过滤器json解析的逻辑?
【发布时间】:2018-05-15 03:57:55
【问题描述】:

我有 json 对象:

  photos = {
        "response": {
        "84": {
        "type": "photo",
        "photo": {
          "src_big": "https://pp.userapi.com/xxxx.jpg"
        }
        },
        "49": {
        "type": "photo",
        "photo": {     
          "src_xbig": "https://pp.userapi.com/yyyy.jpg",
          "src_big": "https://pp.userapi.com/xxxx.jpg"
        }
        }
        }
        }

我想使用这样的过滤器从 json 对象中获取所有链接。 如果对象中有'src_xbig',我会得到它,如果没有,我会得到'src_big'。 无论如何,我只能通过 1 个参数 src_big 来获得它。

  x = photos['response']
  src_big = [x[elem]['photo']['src_big'] for elem in x]

我应该如何过滤它?

【问题讨论】:

    标签: python json parsing filter


    【解决方案1】:

    假设至少有一个'src_big' / 'xsrc_big'存在,您可以这样做:

    Python 3.x

    src_big = [x['photo'].get('src_xbig', x['photo']['src_big'])
               for _, x in photos['response'].items()]
    

    Python 2.7

    src_big = [x['photo'].get('src_xbig', x['photo']['src_big'])
               for _, x in photos['response'].iteritems()]
    

    【讨论】:

      【解决方案2】:

      假设'src_big' 存在:

      photos_response = photos['response']
      
      src_big = list(map(lambda x: photos_response[x]['photo']['src_big'], photos_response))
      

      src_xbig 相同

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-10
        • 1970-01-01
        • 1970-01-01
        • 2018-07-07
        • 1970-01-01
        相关资源
        最近更新 更多