关于python处理大型json文件的方法

作者:人生天天快乐 时间:2023-09-24 12:47:47 

如图所示,要处理的数据是一个json数组,而且非常大

关于python处理大型json文件的方法

下图为电脑配置,使用 json.load() 方法加载上述json文件电脑直接卡死

关于python处理大型json文件的方法

解决思路:

先用python进行预处理,即一整个json数据加载慢,那就分开加载,每次加载一个json对象,然后使用 json.dumps()方法 存储到txt中,方便读取。当然也可以存储到内存中,根据情况而定。

算法思想:因为 json 是一种结构化的数据,所以 {} 是成对存在的。因为使用逐行读取的方法读入json文件,所以根据 {} 的数量来判断是否读取了一个完整的json对象,如果是完整的,则使用 json.dumps()方法 存储到txt中。

getUsefullData(temp + line,id)这个方法是提取自己需要的数据

def jsonProcess(fileName,round):
   id = 1
   with open(fileName, 'r', encoding='utf-8') as f,open('../tempData/tempFile'+str(round)+'.txt','w') as tempFile:
       line = f.readline()
       line = f.readline()
       temp = ''
       khNum = 0
       id = 1
       while line:
           # print(line)
           if line.find('{') != -1:
               khNum += 1

if line.find('}') != -1:
               khNum -= 1

if khNum == 0:
               line = line.replace(',','')
               data = getUsefullData(temp + line,id)
               id += 1
               if len(data) > 1:
                   # print(data)
                   try:
                       tempFile.write(json.dumps(data)+'\n')
                   except 'json.decoder.JSONDecodeError':
                       break
               temp = ''
               line = f.readline()
               continue
           temp += line
           line = f.readline()

读取方法:

with open('../tempData/tempFile'+str(round)+'.txt') as f:
       dataList = f.readlines()
       # 解析保存好的list
       for data in dataList:
           data = json.loads(data)

来源:https://www.cnblogs.com/sk-lqbzblogs/p/15979192.html

标签:python,处理,json文件
0
投稿

猜你喜欢

  • 详解Python如何巧妙实现数学阶乘n!

    2023-07-06 10:22:56
  • 如何基于Python爬虫爬取美团酒店信息

    2023-10-11 00:12:45
  • python中将字典形式的数据循环插入Excel

    2023-07-05 01:49:19
  • MySQL查询出现1055错误的原因及解决方法

    2024-01-13 04:05:54
  • JavaScript 使用技巧精萃(.net html

    2023-07-02 05:18:45
  • python简单区块链模拟详解

    2023-11-09 12:04:57
  • asp去除html标记与空格的正则

    2022-12-15 08:40:12
  • js模拟类继承小例子

    2024-04-16 10:38:29
  • python中关于py文件之间相互import的问题及解决方法

    2021-08-29 00:29:33
  • Django1.7+python 2.78+pycharm配置mysql数据库教程

    2023-11-04 14:43:28
  • Python 批量合并多个txt文件的实例讲解

    2022-09-18 07:39:47
  • pyecharts绘制中国2020肺炎疫情地图的实例代码

    2022-08-18 08:02:44
  • vue3动态路由刷新后空白或者404问题的解决

    2023-07-02 16:58:39
  • python输出决策树图形的例子

    2022-02-07 09:14:54
  • Windows存储 SQL行溢出 差异备份及疑问

    2008-12-24 15:22:00
  • 浅谈如何提高PHP代码的质量

    2024-06-05 09:47:05
  • 用python实现前向分词最大匹配算法的示例代码

    2023-12-03 00:18:46
  • 对Python 简单串口收发GUI界面的实例详解

    2023-03-29 05:50:18
  • Python tkinter三种布局实例详解

    2022-11-28 11:23:44
  • 如何在Python里使用ChatGPT及ChatGPT是什么?注册方式?

    2022-12-01 22:43:12
  • asp之家 网络编程 m.aspxhome.com