Python读取json文件太慢(python读取json文件并解析)

http://www.itjxue.com  2023-03-31 04:21  来源:未知  点击次数: 

Pickle和JSON的读写速度对比

上面三篇文章作为参考,测试一下pickle和JSON的读写。

先说结论:JSON比pickle快,在需要较大的data时,可以考虑用ujson,更快。一般情况下JSON够用。另外,JSON不支持np.array,需要转换成list(.tolist()),所以考虑到易用性而不需要考虑读取速度时,用pickle最无脑简单。

首先需要导入json库:

import json

json的读写:

一共有四个模块:dumps、dump、loads、load

json.dumps: python对象——JSON字符

json.loads: JSON字符——python对象

json.dumps: 将数据写入json文件中

在使用JSON的时候遇到一个报错:

NumPy array is not JSON serializable

搜到解决方案:

stackoverflow-NumPy array is not JSON serializable

简单说就是JSON没有np array的编码器,所以需要先把array转换成list:

your_array.tolist()

python解析较大的json文件报异常,怎么处理

1.有可能是格式的问题。建议提出来一个到在线解析看一看

2.实在不行,就设置一个异常抛出,正常情况下异常的可能就那一个。

抛异常代码:

with open('d://py/20160122.json','r') as fo:

for line in fo:

try:

# print(count)

paper[count]=json.loads(line)

count+=1

except ValueError:

continue

JSON数据问题:读取80M的JSON文件算不算不合理设计? 速度会不会很慢?

这个没具体实现测试过,不过我给你个思路好吧。你读json,也是按字节读取出来的。所以你从这个角度想,其实问题就是读取一个80m的文件,性能上怎么样。这样你就随便找个80m左右的文件,然后自己写个代码,测试下它的读取时间,差不多就等于读取80mjson文件的时间了。中心点都是字节方式读取出来,本质都是读取文件。

(责任编辑:IT教学网)

更多

推荐MYSQL文章