zoukankan      html  css  js  c++  java
  • python jsonpath 语法总结

    因为是第三方库,需要我们安装三方库

    pip  install jsonpath

    from jsonpath import jsonpath


    jsonpath方法需要两个参数:
    参数1:数据
    参数2:jsonpath表达式

    注意点:
    1.如果没有匹配不到数据返回的是False
    2.匹配到数据返回的是包含数据的列表

    jsonpath语法:
    $ -----------> 根节点
    . -----------> 选择子节点
    .. -----------> 选择子孙节点(不考虑层级)
    [] -----------> 选择子节点/选择数组索引
    [,] -----------> 选择多个字段
    @ -----------> 代表当前选中的节点(和条件过滤一起使用)
    [?(过滤条件)] ------------> 通过条件过滤数据
    * ------------> 通配符,表示匹配所有
    
    
     1 data = {'code': 200,
     2         'data': [
     3             {'photo': 'https://static-image.xfz.cn/1454046552_487.png', 'create_time': '2016-01-29 13:49:13',
     4              'link': 'http://www.ehoutai.com/', 'uid': 7, 'name': '易后台'},
     5             {'photo': 'https://static-image.xfz.cn/1454046135_474.png', 'create_time': '2016-01-29 13:42:15',
     6              'link': 'http://www.sanjieke.com/', 'uid': 4, 'name': '三节课'},
     7             {'photo': 'https://static-image.xfz.cn/1454046053_122.png', 'create_time': '2016-01-29 13:40:53',
     8              'link': 'https://www.aliyun.com/', 'uid': 1, 'name': '阿里云'},
     9             {'photo': 'https://static-image.xfz.cn/1454047318_361.png', 'create_time': '2016-01-29 14:01:59',
    10              'link': 'http://xmanlegal.com/', 'uid': 8, 'name': '未来法律'}]}
    11 
    12 data2 = {'code': 0,
    13          'msg': 'OK',
    14          'data':
    15              {'id': 10006043,
    16               'leave_amount': -422500.0,
    17               'mobile_phone': '13449960188',
    18               'reg_name': '小柠檬',
    19               'reg_time': '2021-01-01 22:03:39.0',
    20               'type': 1,
    21               'token_info':
    22                   {'token_type': 'Bearer',
    23                    'expires_in': '2021-01-07 12:32:52',
    24                    'token': 'eyJhbGciOiJIUzUxMiJ9.eyJtZW1iZXJfaWQiOjEwMDA2MDQzLCJleHAiOjE2MDk5OTM5NzJ9.W_wi-NFjJMa3NZF9BOv_j0DvdSRhP7ncMrLfDdpM7HPpW01Afh7Gn6MAQXAFsS0Wge2BUlXAxLNTEv2RO3w-Ow'}},
    25          'copyright': 'Copyright Abby © 2017-2020 腾讯公司 All Rights Reserved'
    26          }
    27 
    28 token = jsonpath(data2, "$..token")
    29 print(token)
    30 
    31 # 选择子节点
    32 code = jsonpath(data2, "$.code")  # ==  jsonpath(data2, "$[code]")
    33 print(code)
    34 
    35 # 通过索引选择列表中的数据
    36 code = jsonpath(data, "$.data[0]")  # ==  jsonpath(data, "$[data][0]")
    37 print(code)
    38 code1 = jsonpath(data, "$.data[1].name")  # == jsonpath(data, "$.data[1][name]")
    39 print(code1)
    40 
    41 # 选择多个字段
    42 code2 = jsonpath(data, "$.data[1][name,link,]")  # ==  jsonpath(data, "$.data[1].name,link")
    43 print(code2)
    44 code3 = jsonpath(data2, "$.data[id,mobile_phone,type]")  # == jsonpath(data2, "$.data.[id,mobile_phone,type]")
    45 print(code3)
    46 
    47 # 通过过滤条件
    48 res1 = jsonpath(data, "$.data[?(@.uid==4)]")  # == jsonpath(data, "$[data][?(@.uid==4)].name")
    49 # print(jsonpath(data, "$.data[?(@.name=='阿里云')]"))
    50 print(res1)
    51 res2 = jsonpath(data, "$.data[?(@.uid==4)][name]")  # == jsonpath(data, "$.data[?(@.uid==4)].name") # == jsonpath(data, "$[data][?(@.uid==4)].name")
    52 # print(jsonpath(data, "$.data[?(@.uid > 7)][name]"))
    53 print(res2)
    
    
  • 相关阅读:
    一些基本的操作,编译,构建,单元测试,安装,网站生成和基于Maven部署项目。
    Maven目标
    Maven是什么?
    Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。
    mvn archetype:generate 创建Maven项目
    Maven是一个项目管理工具
    Maven项目对象模型(POM)
    e816. 创建工具栏
    e836. 设置JTabbedPane中卡片的提示语
    e834. 设置JTabbedPane中卡片的位置
  • 原文地址:https://www.cnblogs.com/pywen/p/14245876.html
Copyright © 2011-2022 走看看