0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Python中高效使用JSON的四种方法

如意 来源:读芯术微信公众号 作者:读芯术微信公众号 2020-09-14 15:17 次阅读

字典和列表是 Python的两种数据类型,也是用来处理JSON的完美工具。本文将主要分享以下内容:

如何载入、编写JSON?

如何在命令行上优化、校验JSON?

如何通过使用JMESPath对JSON文档执行高级查询?

1. JSON解码

Python自带一个功能强大、内容丰富的JSON库。可通过以下方式导入:

import json

解码JSON字符串很简单,直接输入 json.loads(…) 即可。它可以转换成:

字典对象

列表数组

识别布尔值、整数、浮点数和字符串,在Python中进行正确转换。

任何 null 都将被转换为Python的None类型。

以下为json.loads 的一个实例:

在Python中高效使用JSON的四种方法

2. JSON编码

编码JSON也很简单。使用json.dumps(…) 把由字典、列表和其他本机类型组成的Python对象转换为字符串:

在Python中高效使用JSON的四种方法

这其实是一个完全相同的文档,只是被转换成了字符串。所以,要想让JSON文档更易读,可使用缩进选项:

在Python中高效使用JSON的四种方法

3. 命令行用法

JSON库也可从命令行使用,以校验、优化JSON:

在Python中高效使用JSON的四种方法

如果你的电脑系统是Mac或Linux,并且能够安装JSON库的话,那么你也可以研究一下jq 命令行工具。它除了有便于记忆,可以润色代码等优点外,还有许多其他特点。

4. 使用JMESPath搜索JSON

JMESPath是一种JSON查询语言。它能够让你轻松地从JSON文档中获取所需数据。如果你用过JSON,就会觉得获取嵌套值并不难。

例:doc[“person”][“age”]将在一个如下所示的文档中获取age的嵌套值:

在Python中高效使用JSON的四种方法

但如果是像下面这样的文档,该如何从这一组人名中提取所有年龄字段呢?

在Python中高效使用JSON的四种方法

我们可以简单地写一套关于这些人名的重复指令。虽然很容易,但重复指令运行较慢,会使你的代码复杂化。所以,这就该派JMESPath上场了!

用JMESPath表达式编写代码:

persons[*].age

它将返回一个包含所有年龄的数组:[38, 45, 14]。

假设要筛选列表,只获取名为“erik”的人的年龄。你可以编写一个筛选程序来执行此操作:

persons[?name==‘erik’].age

看,多么流畅!

因为JMESPath不属于Python标准库,所以你需要一起安装pip或pipenv。例如,在虚拟环境中使用pip:

在Python中高效使用JSON的四种方法

现在就去试一试吧!请严格按照交互式教程操作,同时也不要忘了在JMESPath站点上查看示例哦!
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 源代码
    +关注

    关注

    96

    文章

    2946

    浏览量

    66897
  • python
    +关注

    关注

    56

    文章

    4807

    浏览量

    84987
  • JSON
    +关注

    关注

    0

    文章

    119

    浏览量

    7007
收藏 人收藏

    评论

    相关推荐

    Python字符串的特点和修改字符串的常见四种方法

    Python中修改字符串的几种方法
    发表于 02-26 16:52

    IO口的四种使用方法

    IO口的四种使用方法高阻态的典型应用
    发表于 01-12 07:16

    IO口的四种使用方法

    IO口的四种使用方法高阻态的典型应用
    发表于 02-02 06:58

    Word技巧:快速实现双面打印的四种方法

    Word技巧:快速实现双面打印的四种方法 日常办公中要求对文档进行双面打印是很常见的,在打印机没有自带双面打印功能的情况下,
    发表于 12-29 10:31 1572次阅读

    可以让工具再次变得伟大的四种方法

    坐在CES的地板上听主题演讲时,我想到了一些思路,这些理念可以让电子设备制造商们走的更远。 有四种方法可以让工具再次变得伟大。
    的头像 发表于 01-18 08:51 4224次阅读

    如何延长iPhone的寿命 告诉你四种方法

    本文主要介绍了如何延长iPhone寿命的四种简单方法,具体的跟随小编一起来了解一下。
    的头像 发表于 03-31 07:19 7401次阅读

    使用单片机四种方法实现的LED闪灯程序资料免费下载

    本文档的主要内容详细介绍的是使用单片机四种方法实现的LED闪灯程序资料免费下载。
    发表于 07-09 08:00 4次下载
    使用单片机<b class='flag-5'>四种方法</b>实现的LED闪灯程序资料免费下载

    电路板上二极管型号确定的四种方法

    作为电路板上的二极管可以有四种方法确定它们的型号。
    发表于 04-06 15:48 3w次阅读

    python统计词频的三种方法

    python统计词频的三种方法方法
    发表于 05-25 14:33 2次下载

    HT32F5232学习之四种方法实现按键控制LED灯

    HT32F5232学习之四种方法实现按键控制LED灯
    发表于 11-29 16:51 12次下载
    HT32F5232学习之<b class='flag-5'>四种方法</b>实现按键控制LED灯

    改善您的模数转换器系统电源抑制状况的四种方法

    改善您的模数转换器系统电源抑制状况的四种方法
    发表于 11-04 09:51 1次下载
    改善您的模数转换器系统电源抑制状况的<b class='flag-5'>四种方法</b>

    四种方法实现LED点亮

    四种方法实现LED点亮程序分享
    发表于 12-28 10:03 3次下载

    工业显示器维护的四种方法和优势

    一些工业控制设备,如嵌入式工控机、工业平板电脑、工业显示器等,日常使用中可能会遇到一些故障问题。遇到故障时如何维修工业显示器?接下来,让我们来看看工业显示器维护的四种方法和优势。
    的头像 发表于 04-23 14:41 1339次阅读

    测试电容器的四种方法有哪些

    测试电容器的四种方法 电容器是一非常常见的电子元件,它具有存储电能的能力。测试电容器的方法也非常多,下面我们将详细介绍四种常见的测试电容器的方法
    的头像 发表于 09-01 15:11 1.4w次阅读

    pwm脉宽调制的四种方法有哪些

    于电机控制、LED调光、音频处理等领域。以下是四种常见的PWM脉宽调制方法: 固定频率PWM(Fixed-Frequency PWM) 固定频率PWM是一最基本的PWM调制方法。在这
    的头像 发表于 08-08 15:10 1669次阅读