Reading JSON lines (jl) files
Project description
This is a tiny library for reading JSON lines (.jl) files, including gzipped and broken files.
JSON lines is a text file format where each line is a single json encoded item.
Why?
Reading a well-formed JSON lines file is a one-liner in Python. But if the file can be broken (this happens when the process writing it is killed), handling all exceptions takes 10x more code, especially when the file is compressed.
Installation
pip install json-lines
Usage
In order to read a well-formed json lined file, pass an open file as the first argument to json_lines.reader. The file can be opened in text or binary mode, but if it’s opened in text mode, the encoding must be set correctly:
import json_lines with open('file.jl', 'rb') as f: for item in json_lines.reader(f): print(item['x'])
There is also a helper function json_lines.open that recognizes “.gz” and “.gzip” extensions and opens them with gzip:
with json_lines.open('file.jl.gz') as f: for item in f: print(item['x'])
Handling broken (cut at some point) files is enabled by passing broken=True to json_lines.reader or json_lines.open. They are read while it’s possible to decode the compressed stream and parse json, silently stopping on the first error (only logging a warning):
with json_lines.open('file.jl.gz', broken=True) as f: for item in f: print(item['x'])
License
License is MIT.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for json_lines-0.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20595a993169ff51895b4ccbfde4f3fb24cbf5c647e7b4f0d30f13c4d82ae31d |
|
MD5 | d88e42ad6bdcdcd0c23564bb895994e0 |
|
BLAKE2b-256 | 2f72894d8f7da7ac53aa15eb622e47aa51b7e313ddf1b0df9bc73200d8a24a93 |