jsonpath

JsonPath模块的使用方法

jsonpath的使用场景

如果有一个多层嵌套的复杂字典,想要根据key和下标来提取value,这是比较困难的。

jsonpath模块就能解决这个痛点,接下来就让我们一起学习jsonpath模块

jsonpath安装

因为jsonpath是第三方模块,所以需要额外安装

pip install jsonpath

jsonpath提取数据方法

安装好之后引入jsonpath模块

from jsonpath import jsonpath

使用

res = jsonpath(‘要提取数据的字典’,‘jsonpath语法规则字符串’);

jsonpath语法规则


JSONPath 描述

$ 根节点

@ 现行节点

. or [ ] 取子节点

n / a 取父节点,jsonpoth未支持

. . 不管任何位置,选择所有符合条件的节点

* 匹配所有元素节点

n / a 根据属性访问,json不支持,因为json是一个key-value递归结构,不需要属性访问。

[ ] 迭代器示(可以在里面做简单的迭代操作,如数组下标,根据内容选值等)

[ , ] 支持迭代器中做多选。

?() 支持过滤操作

() 支持表达式计算

n / a 分组,jsonpath不支持


小案例

https://www.lagou.com/lbs/getAllCitySearchLabels.json 练习网址

在这里插入图片描述

安装过程可能遇到的小问题

pip install jsonpath命令:

WARNING: You are using pip version 22.0.4; however, version 22.1.2 is
availa

这是因为当前pip版本过低。

解决问题:

python -m pip install --upgrade pip 复制此代码到你的终端运行即可

ERROR: Could not install packages due to an OSError: [WinError 5]
拒绝访问。

这是因为pycharm使用时没有权限去修改文件,退出重新用管理员运行即可

WARNING: Ignoring invalid distribution -ip
(c:\python310\lib\site-packages)

转到您的site-packages目录,查看是否有名称以’~'波浪号开头的文件夹,如果有,请删除该文件夹,site-packages可能存在

的位置Python310\Lib\site-packages;

那么为什么会出现这种问题呢:

卸载软件包时,pip
现在会将其重命名为无法导入的名称,一旦确认一切都会成功(包括在升级时安装新版本),它才会删除这些文件夹。如果出现故障,它会将它们重命名。

以前,它会将整个内容复制到另一个目录,可能还有另一个驱动器,然后在需要时将它们复制回来。所以这个变化是一个显着的性能改进,特别是对于其中包含大量文件的包。

您在这里看到的是由于某种原因删除失败 - 也许 pip 崩溃了?-
所以目录没有被删除。我认为 pip
完全忽略了它们,但也许自从我测试之后发生了其他变化?

目录可以安全删除。

https://www.linuxtutorials.org/fix-warning-ignoring-invalid-distribution-site-packages/
该网址详细讲解

这时再次去运行pip install
jsonpath的时候就可以成功了,但是你以为这就结束了吗?不,你可能还会遇到以下问题:

问题:安装jsonpath成功了,在pycharm中导入时却不能用

刚才安装jsonpath时明明是显示安装成功的,为什么导入会报错呢?
在这里插入图片描述

因为通过pip安装的模块默认是全局安装的,安装位置是在python.exe解释器同级目录下的 Lib\site-packages 里面。而你此

时的脚本 在选择 python解释器 的时候可能没有勾选如下图选项:

在这里插入图片描述

解决方法:打开设,项目:code,点击Python解释器,点击设置按钮,点击添加,勾选下图选项即可,当然你如果使用的是英文的话,点击该链接

https://blog.youkuaiyun.com/mccree618/article/details/118294929

在这里插入图片描述
在这里插入图片描述

总结

这是博主自学python遇到的一些坑,希望可以帮助到大家,以上问题可能有的同学很早就遇到过,但是有的同学和博主一样会

踩这样的坑,所以,这是为了大家能更快的解决问题,我把我踩到的坑给大家总结一下,希望可以帮助到你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龍九^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值