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

Python处理超大json文件的几种方案

目录

  • 专栏导读
  • 库的安装
  • 方案1
    • 代码
  • 方案2
    • 代码
  • 方案3
    • 代码
  • 总结

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

库的安装

用途安装
ijson流式解析jsonpip install ijson -i https://pypi.tuna.tsinghua.edu.cn/simple/
ujson更快的JSON解析器pip install ujson -i https://pypi.tuna.tsinghua.edu.cn/simple/
orjson快速且节省内存的JSON解析库pip install orjson -i https://pypi.tuna.tsinghua.edu.cn/simple/

——————————————————————————————————————

方案1

  • ijson:这是一个用于流式解析JSON的库。它允许你以增量方式处理数据,而不是一次性加载整个文件。这对于处理大型文件特别有用,因为你可以逐个处理元素而不需要一次性将所有数据加载到内存中。 安装:

代码

import ijson

filename = "large_file.json"
with open(filename, 'r', encoding='utf-8') as file:
    objects = ijson.items(file, 'item')
    for obj in objects:
        # 处理每个对象
        print(obj)

——————————————————————————————————————

方案2

  • ujson(Ultra JSON):这是另一个更快的JSON解析器,通常比Python内置的json模块更快。它也是基于C的实现,因此性能更好。但是,ujson仍然需要将整个文件加载到内存中,所以如果文件太大,你可能仍然会遇到内存限制。 安装:

代码

import ujson

with open('large_file.json', 'r', encoding='utf-8') as file:
    data = ujson.load(file)
    # 处理数据

——————————————————————————————————————

方案3

  • orjson:这是一个快速且节省内存的JSON解析库,同样适用于处理大型文件。它支持流式解析,并且在处理大量数据时表现良好

代码

import orjson

with open('large_file.json', 'rb') as file:
    data = orjson.loads(file.read())
    # 处理数据

——————————————————————————————————————

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏


http://www.kler.cn/news/360645.html

相关文章:

  • 常见的消息队列(MQ)框架
  • 基于yolov10的驾驶员抽烟打电话安全带检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • 微积分复习笔记 Calculus Volume 1 - 3.3 Differentiation Rules
  • 燕山大学23级经济管理学院 10.18 C语言作业
  • 飞凌嵌入式FET527N-C核心板已适配OpenHarmony4.1
  • 解决springboot redisTemplate lua execute hash脚本 field有转义符的问题
  • CentOS6升级OpenSSH9.2和OpenSSL3
  • ChatGLM-6B和Prompt搭建专业领域知识问答机器人应用方案(含完整代码)
  • L0G1000 Linux 基础知识
  • 长短期记忆网络(Long Short-Term Memory,LSTM)
  • 跨境电商批量自养号测评是怎么做到的?
  • 鸿蒙开发案例:绘制中国象棋棋盘与棋子的技术教程
  • 为什么springboot项目更多的选择了SpringSecurity,而不是Shiro?
  • 【WebLogic】WebLogic 14c控制台密码文件权限问题分享
  • 2019年计算机网络408真题解析
  • CFG 蒸馏:On Distillation of Guided Diffusion Models
  • 【景观生态学实验】实验四 景观指数计算
  • multi-Head Attention
  • Vue--》掌握自定义依赖引入的最佳实践
  • blender 理解 积木组合 动画制作 学习笔记