读取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第三方库


热门话题
java为什么我的代码永远运行?它只是一堆带int的for循环,应该是递减的?   java如何更改IntelliJ IDEA中的XML缩进?   java如何使未填充的int数组不打印0?   eclipse My Weka Java代码结果*Weka*虚拟*STRING*用于*STRING*属性*   java泄漏了Windows com。安卓内部的政策恳求   java这个无限循环的原因是什么?   swing My标签在Java中很模糊   java如何在组件表示存储扩展中获取组件对象   java如何避免selenium网格中的会话超时   Java乘法测验,如果答案错误,如何循环   在Java HttpServlet Google app engine中保存对象   java ArrayList过滤器   java跳跃减慢了xvelocity:使用Libgdx/Box2D进行跳跃和跑步   java删除、复制和修改pom。xml文件   当提供的时区与服务器的时区相同时,RestCall中的java@DateTimeFormat(iso=iso.DATE_TIME)不工作   java Spring批处理多线程默认限制为10隐式?   安卓错误java。lang.UnsupportedOperationException:无法转换为维度:type=0x1