关于python处理大型json文件的方法
作者:人生天天快乐 发布时间:2023-09-24 12:47:47
标签:python,处理,json文件
如图所示,要处理的数据是一个json数组,而且非常大
下图为电脑配置,使用 json.load() 方法加载上述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
0
投稿
猜你喜欢
- setuptools模块和pip模块是python进行第三方库扩展的极重要工具,例如我们在需要安装一些爬虫或者数据分析的包时就可以使用pip
- a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb
- 代码如下: <% Dim oConn, ors, aRows Dim i,j Set oConn=Server.CreateObjec
- 背景:pony是公司的首席体验官、首席产品经理。这次在产品峰会上pony将自己平时经验的积累与大家交流,体验较细。这次分享研发管理部,设计中
- 条件查询范围查询模糊查询条件查询all()返回全部结果集filter(**kwargs)返回满足参数定义的结果集 例如Entry.objec
- 问题怎样捕获代码中的所有异常?解决方案想要捕获所有的异常,可以直接捕获 Exception 即可:try: ...except
- 异常的传递性在 Python 中,异常的传递性指的是,当一个异常没有被处理时,它会沿着调用栈向上抛出,直到被处理或者导致程序崩溃。具体来说,
- 随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联
- 栈(stack)栈又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作。如下图所示例如
- 需求 Oracle调用第三方外部程序。Oracle使用sqluldr2快速导出大批量数据,然后用winrar压缩后发送邮件。源码 java
- 本文实例讲述了python飞机大战pygame游戏框架搭建操作。分享给大家供大家参考,具体如下:目标明确主程序职责实现主程序类准备游戏精灵组
- 今天有朋友问到如下一则案例,ORA-01114,ORA-27067以及OSD-04026错误同时出现:*** ACTION NAME:()
- 本文实例讲述了Python判断有效的数独算法。分享给大家供大家参考,具体如下:一、题目判断一个 9x9 的数独是否有效。只需要根据以下规则,
- 每个电子商务数据分析师必须掌握的一项数据聚类技能如果你是一名在电子商务公司工作的数据分析师,从客户数据中挖掘潜在价值,来提高客户留存率很可能
- Web标准的web UI——来源、谬误与个人理解序我从2004年末开始接触web标准,2005年5月正式采取完全的web标准方式的网页制作,
- em 和 strong 的区别,可以从三个层次上来谈。首先看 HTML 4.01 中的说明:EM: Indicates emphasis.S
- 1、元旦之前受赵晨之邀作为讨论嘉宾参加了ACM组织的“人与信息社会巡讲”。2、去之前赵晨发给了我大致的讨论提纲。咣当了好几下~说实话,我是硬
- 一、前言这篇文章主要是记录一下php生成静态页面的大致步骤,关于页面静态化,大家想必都听说过,但是真正用的时候反而不是很多。有些页面考虑到访
- 一、简单介绍pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装和卸载的功能,现在大家用到的所有包不是自带
- pandas模块pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同