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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么