读取json行(jl)文件,恢复损坏的文件

json-lines的Python项目详细描述


PyPI VersionBuild StatusCode Coverage

这是一个用于读取json行(.jl)文件的小型库, 包括压缩文件和损坏的文件。

JSON lines是文本文件格式 其中每一行是一个json编码的项。

为什么?

读取格式良好的json行文件是python中的一行代码。 但是文件可能会被破坏:在某个点上被切断 (当写入它的进程被终止时会发生这种情况)。 或由几个切割的片段连接而成 (当进程再次开始追加到同一个文件时,就会发生这种情况)。 处理所有这些情况并不容易,尤其是在文件被压缩的情况下。

json行为您处理所有这些情况!

安装

pip install json-lines

如果安装了ujson,则使用 加快json解码速度(这是主要的性能瓶颈 即使对于gzip文件)。

用法

为了读取格式良好的json行文件, 将打开的文件作为第一个参数传递给json_lines.reader。 文件可以打开 在文本或二进制模式下,但如果它是在文本模式下打开的,则 必须正确设置:

import json_lines

with open('file.jl', 'rb') as f:
    for item in json_lines.reader(f):
        print(item['x'])

还有一个helper函数json_lines.open可以识别 “.gz”和“.gzip”扩展并用gzip

打开它们
with json_lines.open('file.jl.gz') as f:
    for item in f:
        print(item['x'])

通过传递^{tt4},可以处理断开的(在某些点上剪切)文件$ 到json_lines.readerjson_lines.open。 将跳过虚线(仅记录警告),并继续读取 从下一个有效位置。 这对压缩文件和未压缩文件都有效:

with json_lines.open('file.jl.gz', broken=True) as f:
    for item in f:
        print(item['x'])

许可证

许可证是麻省理工学院的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
onclicklistner中的java全局变量   Android中的Tensorflow:java。尼奥。BufferOverFlowException   java无法预先部署处于无效状态的PersistenceUnit[PU][DeployFailed]   java Liferay;将其他参数传递给jQuery UI aotocompleter   java如何使用Netflix/Eureka服务中的发现信息在Netflix/Zuul和Netflix/Ribbon中启用自动路由?   java如何使用命令打开spotlight   java Android为按钮分配数组值   jsp java。NoClassDefFoundError:即将推出java servlet   应用程序存储设置的java意图   java Android viewflow验证   java如何为多个列表重用BaseAdapter视图   在Java中,socket通过internet发送多播数据包   JavaXStream加载自定义XML