读取JSON行(jl)文件,恢复损坏的文件
项目描述
这是一个用于读取JSON行(.jl)文件的微型库,包括压缩和损坏的文件。
JSON lines是一种文本文件格式,其中每行是一个单独的json编码项。
为什么?
在Python中读取格式良好的JSON行文件是一行代码。但是文件可能会损坏:在某些点被截断(这发生在写入文件的过程被杀死时),或者由几个截断的部分拼接而成(这发生在过程再次向同一文件追加时)。处理所有这些情况并不容易,特别是如果文件被压缩。
json-lines为您处理所有这些情况!
安装
pip install json-lines
如果已安装ujson,则将其用于加速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'])
此外还有一个辅助函数 json_lines.open,它可以识别“ .gz”和“ .gzip”扩展名,并用 gzip 打开它们。
with json_lines.open('file.jl.gz') as f: for item in f: print(item['x'])
通过将 broken=True 传递给 json_lines.reader 或 json_lines.open,可以启用处理损坏(在某处被截断)的文件。损坏的行将被跳过(仅记录警告),并从下一个有效位置继续读取。这既适用于压缩文件也适用于未压缩文件。
with json_lines.open('file.jl.gz', broken=True) as f: for item in f: print(item['x'])
许可证
许可证是 MIT。
项目详情
关闭
json-lines-0.5.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a1a5c3e24fb1bafc54b2bf273469c7b986445df520a923db182a96a954b42ae6 |
|
MD5 | 63333c37f0bbb0d781b36eb2676778e8 |
|
BLAKE2b-256 | adfc53be3bd1997800228c3dfc3b5b72b758263f8e08aa12429c1f72030688b9 |
关闭
json_lines-0.5.0-py2.py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8a20de205b582c9feb6fc2e0c3eafd849fd28c47432f6b3712b365f5068414bb |
|
MD5 | 1c40a38455755e4a8977f85adcb527a6 |
|
BLAKE2b-256 | 7f0f79c96c0d26b276c583484fe8209e5ebbb416a920309568650325f6e1de73 |