Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

json-lines

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-lines

Reading JSON lines (jl) files, recover broken files

  • 0.5.0
  • PyPI
  • Socket score

Maintainers
2

json-lines

.. image:: https://img.shields.io/pypi/v/json-lines.svg :target: https://pypi.python.org/pypi/json-lines :alt: PyPI Version

.. image:: https://travis-ci.org/TeamHG-Memex/json-lines.svg?branch=master :target: http://travis-ci.org/TeamHG-Memex/json-lines :alt: Build Status

.. image:: http://codecov.io/github/TeamHG-Memex/json-lines/coverage.svg?branch=master :target: http://codecov.io/github/TeamHG-Memex/json-lines?branch=master :alt: Code Coverage

This is a tiny library for reading JSON lines (.jl) files, including gzipped and broken files.

JSON lines <http://jsonlines.org/>_ 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 the file can be broken: cut at some point (this happens when the process writing it is killed), or concatenated from several cut pieces (this happend when the process started appending to the same file again). Handling all this cases is not easy, especially if the file is compressed.

json-lines handles all this cases for you!

Installation

::

pip install json-lines

If ujson <https://pypi.python.org/pypi/ujson>_ is installed, it is used to speed up json decoding (which is the main performance bottleneck even for gzipped files).

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. Broken lines are skipped (only logging a warning), and reading continues from the next valid position. This works both for compressed and uncompressed files::

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

License

License is MIT.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc