Python读取json文件太慢(python读取json文件并解析)
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文件的时间了。中心点都是字节方式读取出来,本质都是读取文件。