YvMoYvMo 2023-04-02 22:46 采纳率: 85%
浏览 19
已结题

python中 jsonpath的用法问题?

# 思考,为什么price下面不用[*]


import json

import jsonpath
file = json.load(open(file='073_尚硅谷_爬虫_解析_jsonpath.json',mode='r',encoding='utf-8'))
# print(file)

# 1、需求1获取书店所有书的作者
author_list = jsonpath.jsonpath(obj=file,expr='$.store.book[*].author')
print(author_list)

# # store里面所有东西的price
price_list = jsonpath.jsonpath(obj=file,expr='$.store..price')
**# 思考,为什么price下面不用[*]**
print(price_list)

源文件格式json
073_尚硅谷_爬虫_解析_jsonpath.json

{
  "store": {
    "book": [
      {
        "category": "修真",
        "author": "六道",
        "title": "坏蛋是怎样练成的",
        "price": 8.95
      },
      {
        "category": "修真",
        "author": "天蚕土豆",
        "title": "斗破苍穹",
        "price": 12.99
      },
      {
        "category": "修真",
        "author": "唐家三少",
        "title": "斗罗大陆",
        "isbn": "0-553-21311-3",
        "price": 8.99
      },
      {
        "category": "修真",
        "author": "南派三叔",
        "title": "星辰变",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": {
      "author": "老马",
      "color": "黑色",
      "price": 19.95
    }
  }
}

  • 写回答

3条回答 默认 最新

  • 微软技术分享 全栈领域优质创作者 2023-04-03 08:57
    关注

    在jsonpath语法中,使用[]表示获取数组或对象中的所有元素。在这个例子中,$.store..price表示获取store对象下的所有子孙节点中名为price的元素,因为price是一个属性名而不是数组,所以不需要使用[]。如果使用[*],将会报错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 4月2日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?