当前位置: 首页 > news >正文

orjson:一个比标准库快 10 倍的 Python JSON 库

文章目录

  • orjson:一个比标准库快 10 倍的 Python JSON 库
    • 1、标准库的短板
    • 2、orjson 快在哪里
    • 3、安装与使用
    • 4、平台支持
    • 5、适合哪些人

orjson:一个比标准库快 10 倍的 Python JSON 库

orjson 在 GitHub 上已有 8,097 个 Star。

这是一个用 Rust 编写的 Python JSON 库,目标很明确:比标准库更快、更正确地处理 JSON。

1、标准库的短板

Python 内置的json模块足够应付日常,但一旦数据量上去、类型复杂起来,瓶颈就出来了。

标准库不原生支持datetimeUUIDnumpy.ndarray这类常见类型,碰到就得手动写转换逻辑。序列化大对象时,速度也往往拖后腿。

2、orjson 快在哪里

orjson 的dumps()序列化速度约为标准库的 10 倍,loads()解析速度约为 2 倍。它严格遵循 UTF-8 和 RFC 8259,不会为了追求速度牺牲正确性。

这些类型它原生支持序列化:

  • dataclasses.dataclass
  • datetime.datetimedatetime.datedatetime.time
  • uuid.UUID
  • numpy.ndarray
  • enum.Enum

不需要手写转换函数,直接丢进去就行。

输出是 UTF-8 编码的bytes对象。序列化过程中 GIL 被全程持有,对纯 Python 调用者来说是透明的。

3、安装与使用

通过 PyPI 安装:

pipinstall"orjson >= 3.10,<4"

也可以在pyproject.toml里指定:

orjson = "^3.10"

快速示例:

importorjson,datetime,numpy data={"type":"job","created_at":datetime.datetime(1970,1,1),"payload":numpy.array([[1,2],[3,4]]),}orjson.dumps(data,option=orjson.OPT_NAIVE_UTC|orjson.OPT_SERIALIZE_NUMPY)# b'{"type":"job","created_at":"1970-01-01T00:00:00+00:00","payload":[[1,2],[3,4]]}'

注意orjson.dumps()返回的是bytes,不是strdict的键如果不是字符串,需要加option=orjson.OPT_NON_STR_KEYS。缩进通过OPT_INDENT_2控制,标准库的indent参数在这里被替换为选项位。

4、平台支持

orjson 支持 CPython 3.10 到 3.15,提供 Linux、macOS、Windows 的预编译 wheel,覆盖 amd64、aarch64、arm7、ppc64le、s390x 等架构。amd64 版本在运行时会自动检测 AVX-512 指令集来提速。

它不支持 PyPy 和 Android、iOS 的嵌入式 Python。

5、适合哪些人

  • 需要处理大量 JSON 数据的后端服务开发者
  • 使用dataclassnumpydatetime较多的数据工程场景
  • 对序列化性能有明确要求的项目

如果你现在的 JSON 处理已经成为性能瓶颈,替换为 orjson 通常是最快的优化路径。

较多的数据工程场景

  • 对序列化性能有明确要求的项目

如果你现在的 JSON 处理已经成为性能瓶颈,替换为 orjson 通常是最快的优化路径。

http://www.jsqmd.com/news/988783/

相关文章:

  • Claude Code 代码库迁移评估流程:目录扫描、依赖分析和风险清单
  • 数据的加密与解密(23:53)
  • 2026年 西安充电桩箱式变电站厂家推荐榜:新能源汽车充电桩变电站/交流充电桩配电房/高低压成套设备实力厂商深度解析 - 品牌发掘
  • ChatGPT / Codex 账号被封的 6 大原因与排查清单(2026)
  • 权威认证加持!融景科技斩获两项国家级一级行业资质、两项自研核心软著,服务中铁、华润置地等头部名企树立湛江 GEO 技术服务标杆 - 广东科技观察
  • 2026年 惠州变压器回收最新推荐:专业处置油式/干式/箱式废旧变压器及二手设备公司盘点 - 品牌发掘
  • 科华UPS全系列产品汇总:主流型号与应用场景解析
  • 数据的加密与解密(23:39)
  • python3.7-数据存储与运算-赋值运算符
  • 华恒智信助力制造业完成基层管理效能重塑
  • 大专毕业5年转行自学嵌入式还有救吗?
  • 微信网页版终极解决方案:wechat-need-web浏览器扩展完整指南
  • 全国地下水位深度数据集
  • LinkSwift网盘直链下载助手:告别限速,5分钟开启高速下载新时代
  • 数据的加密与解密(23:35)
  • Teamcenter许可回收,两种触发方式到底哪个更及时?
  • 单配六维力传感器采集卡/模块的方法 EtherCAT ECT-FT6B北京锐灵科技ray0.cn
  • 2026年辽宁党建文化墙公司推荐榜单:红色阵地设计、党建展厅与氛围营造实力品牌解析 - 品牌发掘
  • 四路LED灯控芯片 ECJ240024掉电循环切换LOGO霓虹灯专用闪灯芯片
  • CompletableFuture 详细讲解
  • 【新 Linux 服务器上手全攻略】系统巡检、存储规划与开发环境初始化
  • 正规的郑州geo服务商有哪些
  • Claude Code 的 Skills:AI Agent 真正需要的不是提示词,而是组织记忆
  • 【Altium】DRC 覆铜警告纠正建议
  • 如何用Sunshine在10分钟内搭建高效的个人游戏串流服务器?
  • 华为云发布Agentic AI系列新品 打造智能时代“硅基黑土地”
  • AI中医ChatiSS查体大模型全流程解析,辨证准确率凭什么可以做到95.8%
  • 聊天式 AI 剪辑工作流解析:自然语言如何驱动多步视频处理
  • 2026年 耐高温丁晴密封圈品牌推荐榜:高温耐油、高压耐用与长寿命品质之选 - 品牌发掘
  • 报销流程混乱,问题到底出在哪里?