iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中最好用的json库orjson用法详解
  • 739
分享到

Python中最好用的json库orjson用法详解

2024-04-02 19:04:59 739人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1 简介2 orJSON常用方法2.1 序列化2.2 反序列化2.3 丰富的option选项2.4 针对dataclass、datetime添加自定义处理策略总结1 简介 大家好

1 简介

大家好,我们在日常使用 python 的过程中,经常会使用 json 格式存储一些数据,尤其是在 WEB 开发中。而 Python 原生的 json 库性能差、功能少,只能堪堪应对简单轻量的 json 数据存储转换需求。

而本文我要给大家介绍的第三方 json 库 orjson ,在公开的各项基准性能测试中,以数倍至数十倍的性能优势碾压 json 、 ujson 、 rapidjson 、 simplejson 等其他 Python 库,且具有诸多额外功能,下面我们就来领略其常用方法吧~

2 orjson常用方法

orjson 支持 3.7 到 3.10 所有版本64位的 Python ,本文演示对应的 orjson 的版本为 3.7.0 ,直接使用 pip install -U orjson 即可完成安装。下面我们来对 orjson 中的常用方法进行演示:

2.1 序列化

与原生 json 库类似,我们可以使用 orjson.dumps() 将 Python 对象序列化为 JSON 数据,注意,略有不同的是, orjson 序列化的结果并不是 str 型而是 bytes 型,在下面的例子中,我们对包含一千万个简单字典元素的列表进行序列化, orjson 与 json 库的耗时比较如下:

2.2 反序列化

将 JSON 数据转换为 Python 对象的过程我们称之为反序列化,使用 orjson.loads() 进行操作,可接受 bytes 、 str 型等常见类型,在前面例子的基础上我们添加反序列化的例子:

2.3 丰富的option选项

在 orjson 的序列化操作中,可以通过参数 option 来配置诸多额外功能,常用的有:

  • OPT_INDENT_2

通过配置 option=orjson.OPT_INDENT_2 ,我们可以为序列化后的 JSON 结果添加2个空格的缩进美化效果,从而弥补其没有参数 indent 的不足:

  • OPT_OMIT_MICROSECONDS

orjson.dumps() 可以直接将 Python 中 datetime 、 time 等标准库中的日期时间对象转换成相应的字符串,这是原生 json 库做不到的,而通过配置 option=orjson.OPT_OMIT_MICROSECONDS ,可以将转换结果后缀的毫秒部分省略掉:

  • OPT_NON_STR_KEYS

当需要序列化的对象存在非数值型键时, orjson 默认会抛出 TypeError 错误,这时需要配置 option=orjson.OPT_NON_STR_KEYS 来强制将这些键转换为字符型:

OPT_SERIALIZE_NUMPY

orjson 的一大重要特性是其可以将包含 numpy 中数据结构对象的复杂对象,兼容性地转换为 JSON 中的数组,配合 option=orjson.OPT_SERIALIZE_NUMPY 即可:

  • OPT_SERIALIZE_UUID

除了可以自动序列化 numpy 对象外, orjson 还支持对 UUID 对象进行转换,在 orjson 3.0 之前的版本中,需要配合 option=orjson.OPT_SERIALIZE_UUID ,而本文演示的 3.X 版本则无需额外配置参数:

  • OPT_SORT_KEYS

通过配合参数 option=orjson.OPT_SORT_KEYS ,可以对序列化后的结果自动按照键进行排序

  • 组合多种option

当你的序列化操作需要涉及多种 option 功能时,则可以使用 | 运算符来组合多个 option 参数即可:

2.4 针对dataclass、datetime添加自定义处理策略

当你需要序列化的对象中涉及到 dataclass 自定义数据结构时,可以配合 orjson.OPT_PASSTHROUGH_DATACLASS ,再通过对 default 参数传入自定义处理函数,来实现更为自由的数据转换逻辑,譬如下面简单的例子中,我们可以利用此特性进行原始数据的脱敏操作:

类似的,针对 datetime 类型数据,我们同样可以配合 OPT_PASSTHROUGH_DATETIME 和自定义 default 函数实现日期自定义格式化转换:

总结

到此这篇关于Python中最好用的json库orjson用法的文章就介绍到这了,更多相关Python中json库orjson内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中最好用的json库orjson用法详解

本文链接: https://www.lsjlt.com/news/118521.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中最好用的json库orjson用法详解
    目录1 简介2 orjson常用方法2.1 序列化2.2 反序列化2.3 丰富的option选项2.4 针对dataclass、datetime添加自定义处理策略总结1 简介 大家好...
    99+
    2024-04-02
  • Python 中的json常见用法实例详解
    目录导包api介绍常见用法json转python内置对象字典对象数组对象文件读取python内置对象转json字典转json 字典转json(压缩存储) 字典转j...
    99+
    2022-12-28
    python json用法 python json Python json常见用法
  • C++JSON库CJsonObject详解(轻量简单好用)
    1. JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) 。是一种轻量级的数据交换格式。 它基于ECMAScript...
    99+
    2024-04-02
  • 详解python中flask_caching库的用法
    目录安装flask_caching库:缓存类型配置参数初始化使用缓存为了尽量减少缓存穿透,并同时减少web的响应时间,可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的...
    99+
    2023-05-19
    python flask flask_caching库
  • Python使用JSON库解析JSON数据的方法
    目录1 如何在网页中获取 JSON 数据?2 Python 内置的 JSON 库1 如何在网页中获取 JSON 数据? 打开一个具有动态渲染的网页,按 F12 打开浏览器开发工具,点...
    99+
    2024-04-02
  • Python中requests库的用法详解
    目录一、requests库安装请求响应二、发送get请求1、一个带参数的get请求:2、响应json3、添加头信息headers4、添加和获取cookie信息三、发送post请求1、...
    99+
    2024-04-02
  • python中openpyxl库用法详解
    目录一、读取数据1.1 从工作簿中取得工作表1.2 从表中取得单元格1.3 从表中取得行和列二、写入数据2.1 创建Workbook对象来创建Excel文件并保存2.2 案例分析一 ...
    99+
    2024-04-02
  • 详解python中mongoengine库用法
    目录一、MongoDB的安装与连接二、MongoEngine模型介绍2.1、ODM模型介绍2.2、常见数据类型 2.3、数据类型通用参数2.4、类属性meta常见配置项2....
    99+
    2024-04-02
  • python递归解析JSON(目前最好的
    我们要完成的任务是输出JSON字典,并且对其中的每个元素,要输出它的所有父节点。那么很容易想到的做法就是递归解析。 我参考了别人的一些文章和回答,总结了如下的解决方案: from __future__ import print_f...
    99+
    2023-01-31
    递归 最好的 python
  • Java JSON处理库之Gson的用法详解
    目录引言Gson的基本功能1. 将Java对象转换为JSON字符串(序列化)2. 将JSON字符串转换为Java对象(反序列化)使用Gson的基本步骤1. 添加依赖2. 创建Java...
    99+
    2023-05-19
    Java JSON处理 Java Gson用法 Java Gson
  • Python中JSON的使用方法(超详细)
    目录1. JSON简介2. JSON语法规则3. JSON数据类型4. JSON对象5. JSON数组6. JSON中常用的方法6.1 json.dumps()6.2 json.lo...
    99+
    2022-11-13
    Python JSON使用 Python JSON基本使用 Python JSON
  • Python中Json使用示例详解
    目录Python Json使用1.dict 转成 json (json.dumps(dict))2.json 转 dict (json.loads(jsonstr))3. 类对象转 ...
    99+
    2024-04-02
  • python中validators库的使用方法详解
    目录前言validators.between(value, min=None, max=None)validators.domain(value)validators.email(v...
    99+
    2024-04-02
  • JavaScript中好用的解构用法详解
    目录正文什么是解构数组解构基本用法默认值剩余参数对象解构基本用法别名默认值剩余参数函数参数解构总结正文 JavaScript 是一种灵活的编程语言,它提供了多种语法和特性,其中一个非...
    99+
    2023-05-18
    JavaScript 解构 JavaScript 解构用法
  • Python中高效的json对比库deepdiff详解
    目录deepdiff是什么deepdiff安装案例1、对比txt文件案例2、对比json工作中我们经常要两段代码的区别,或者需要查看接口返回的字段与预期是否一致,如何快速定位出两者的...
    99+
    2024-04-02
  • SQL Server中JSON函数的用法详解
    目录一、 将查询结果输出JSON格式1、FOR JSON AUTO:SELECT语句的结果以JSON输出。2、FOR JSON AUTO,Root(’&rsquo...
    99+
    2024-04-02
  • 最强Python可视化绘图库Plotly详解用法
    今天给大家分享一篇可视化干货,介绍的是功能强大的开源 Python 绘图库 Plotly,教你如何用超简单的(甚至只要一行)代码,绘制出更棒的图表。 我之前一直使用 matplotl...
    99+
    2024-04-02
  • python中os库用法详解(总结)
            os库主要是对文件和文件夹进行操作,在Python中对⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能。 具体步骤如下: 导⼊os模块 import os 使⽤ os 模块相关功能 os.函数名() 1、⽂件重命名 os....
    99+
    2023-09-01
    python os
  • Python 中拼音库 PyPinyin 用法详解
    最近碰到了一个问题,项目中很多文件都是接手过来的中文命名的一些素材,结果在部署的时候文件名全都乱码了,导致项目无法正常运行。 后来请教了一位大佬怎么解决文件名乱码的问题,他说这个需要...
    99+
    2024-04-02
  • python中的json库怎么使用
    在Python中,可以使用`json`模块来处理JSON数据。下面是一些常见的`json`库的使用示例:1. 将Python对象转换...
    99+
    2023-09-25
    python json
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作