jsonpath
jsonpath 用于多层嵌套 json格式的 解析。
pip install jsonpath
  
    
      JsonPath 
      描述 
    
  
  
    
      $
      根节点
    
    
      @
      现行节点
    
    
      .or[]
      取子节点
    
    
      n/a
      取父节点,jsonpath为支持
    
    
      ..
      就是不管位置,选择所有复合条件的条件
    
    
      *
      匹配所有元素节点
    
    
      n/a
      根据属性访问,json不支持,因为json是个key-value递归结构,不需要数属性访问
    
    
      []
      迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
    
    
      [,]
      支持迭代器中做多选
    
    
      "htmlcode">
book_dict = { 
 "store": {
  "book": [ 
   { "category": "reference",
    "author": "Nigel Rees",
    "title": "Sayings of the Century",
    "price": 8.95
   },
   { "category": "fiction",
    "author": "Evelyn Waugh",
    "title": "Sword of Honour",
    "price": 12.99
   },
   { "category": "fiction",
    "author": "Herman Melville",
    "title": "Moby Dick",
    "isbn": "0-553-21311-3",
    "price": 8.99
   },
   { "category": "fiction",
    "author": "J. R. R. Tolkien",
    "title": "The Lord of the Rings",
    "isbn": "0-395-19395-8",
    "price": 22.99
   }
  ],
  "bicycle": {
   "color": "red",
   "price": 19.95
  }
 }
}
  
    
      JsonPath 
      Result 
    
  
  
    
      $.store.book[*].author
      store中的所有的book作者
    
    
      $…author
      所有的作者
    
    
      $.store.*
      store下的所有元素
    
    
      $.store…price
      store中的所有价钱
    
    
      $…book[2]
      第三本书
    
    
      $…book[(@.length-1)]
      最后一本书
    
    
      $…book[0,1]
      取前两本书
    
    
      $…book["htmlcode">
import jsonpath
result = {
  "code": 0,
  "data": [
    {
      "age": 20,
      "create_time": "2019-09-15",
      "id": 1,
      "mail": "283340479@qq.com",
      "name": "yoyo",
      "sex": "M"
    },
    {
      "age": 21,
      "create_time": "2019-09-16",
      "id": 2,
      "mail": "123445@qq.com",
      "name": "yoyo111",
      "sex": "M"
    }
  ],
  "msg": "success!"
}
msg = jsonpath.jsonpath(result, '$.msg')
print(msg)  # 输出结果 ['success!']
names = jsonpath.jsonpath(result, '$..name')
print(names)  # 输出结果 ['yoyo', 'yoyo111']
no = jsonpath.jsonpath(result, '$..yoyo')
print(no)  # 找不到是结果是 False
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?