读取json行(jl)文件,恢复损坏的文件
json-lines的Python项目详细描述
这是一个用于读取json行(.jl)文件的小型库, 包括压缩文件和损坏的文件。
JSON lines是文本文件格式 其中每一行是一个json编码的项。
为什么?
读取格式良好的json行文件是python中的一行代码。 但是文件可能会被破坏:在某个点上被切断 (当写入它的进程被终止时会发生这种情况)。 或由几个切割的片段连接而成 (当进程再次开始追加到同一个文件时,就会发生这种情况)。 处理所有这些情况并不容易,尤其是在文件被压缩的情况下。
json行为您处理所有这些情况!
用法
为了读取格式良好的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.reader或json_lines.open。 将跳过虚线(仅记录警告),并继续读取 从下一个有效位置。 这对压缩文件和未压缩文件都有效:
with json_lines.open('file.jl.gz', broken=True) as f: for item in f: print(item['x'])
许可证
许可证是麻省理工学院的。