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

专栏导读

  • 🌸 欢迎来到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基础学习专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小庄-Python办公

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

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

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

打赏作者

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

抵扣说明:

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

余额充值