Python jsonl query engine


Keywords
json, jsonl, yaml, jq
License
MIT
Install
pip install jf==1.1.2

Documentation

Build Status Coverage PyPI Documentation Status

JF

JF, aka "jndex fingers" or more commonly "json filter pipeline", is a jq-clone written in python. It supports evaluation of python one-liners, making it especially appealing for data scientists who are used to working with python.

Installing

pip install jf

Basic usage

Filter selected fields

$ cat samples.jsonl | jf '{id: x.id, subject: x.fields.subject}'
{"id": "87086895", "subject": "Swedish children stories"}
{"id": "87114792", "subject": "New Finnish storybooks"}
...

Features

supported formats:

  • json (uncompressed, gzip, bz2)
  • jsonl (uncompressed, gzip, bz2)
  • yaml (uncompressed, gzip, bz2)
  • csv and xlsx support if pandas and openpyxl is installed
  • markdown table output support
  • xlsx (excel)
  • parquet

transformations:

  • import and use python modules with --import
  • import additional json for merging and joining using --import name=filename.json
  • initialize transformations with --init
  • access json dict as classes with dot-notation for attributes
  • datetime and timedelta comparison
    • age() for timedelta between datetime and current time
  • first(N), last(N), islice(start, stop, step)
    • head and tail alias for last and first
  • firstnlast(N) (or headntail(N))
  • import your own modules for more complex filtering and transformations
    • Support stateful classes for complex interactions between items
  • sklearn toolbox for machine learning
  • running restful service for the transformation pipeline