企业网站定制开发JsonPath用法详解

企业网站定制开发是一种信息抽取类库,是从JSON企业网站定制开发文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java。

JSONPath的安装方法如下:

pip install jsonpath
  • 1

JSONPath语法和XPATH语法对比 JSON结构清晰,可读性高,复杂度低,非常容易匹配。JSONPath的语法与Xpath类似,如下表所示为JSONPath与XPath语法对比。
下面使用一个JSON文档演示JSONPath的具体使用。JSON 文档的内容如下:

{  "store": {    "book":[      { "category": "reference",        "author": "Nigel Rees",        "title": "Sayings of the Century",        "price": 8.95      },      { "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    }  }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

假设变量bookJson中已经包含了这段JSON字符串,可通过以下代码得到JSON对象:

books=json.loads(bookJson)
  • 1

(1)查看store下的bicycle的color属性:

checkurl = "$.store.bicycel.color"print(jsonpath.jsonpath(books, checkurl))# 输出:['red']
  • 1
  • 2
  • 3

(2)输出book节点中包含的所有对象:

checkurl = "$.store.book[*]"object_list=jsonpath.jsonpath(books, checkurl)print(object_list)
  • 1
  • 2
  • 3

(3)输出book节点的第一个对象:

checkurl = "$.store.book[0]"obj = jsonpath.jsonpath(books, checkurl)print(obj)# 输出: ['category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95}]
  • 1
  • 2
  • 3
  • 4

(4)输出book节点中所有对象对应的属性title值:

checkurl = "$.store.book[*].title"titles = jsonpath.jsonpath(books, checkurl)print(titles)# 输出: ['Sayings of the Century', 'The Lord of the Rings']
  • 1
  • 2
  • 3
  • 4

(5)输出book节点中category为fiction的所有对象:

checkurl = "$.store.book[?(@.category=='fiction')]”books=jsonpath.jsonpath(books, checkurl)print(books)# 输出:[{'category': 'fiction', 'author': 'J. R. R. Tolkien', 'title': 'The Lordof the Rings', 'isbn': '0-395-19395-8', 'price': 22.99}]
  • 1
  • 2
  • 3
  • 4

(6)输出book节点中所有价格小于10的对象:

checkurl="$.store.book[?(@.price<10)]"books = jsonpath.jsonpath(books, checkurl)print(books)# 输出: [{'category': 'reference', 'author': 'Nigel Rees', 'title':'Sayings of the Century', 'price': 8.95}]
  • 1
  • 2
  • 3
  • 4

(7)输出book节点中所有含有isb的对象:

checkurl = "$.store.book[?(@.isb)]"books = jsonpath.jsonpath(books,checkurl)print(books)# 输出: [{'category': 'fiction', 'author': 'J. R. R. Tolkien', 'title': 'The Lord of the Rings', 'isbn': '0-395-19395-8', 'price': 22.99}]
  • 1
  • 2
  • 3
  • 4
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发