Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexmojaki/jsonfinder
Python library to easily handle JSON contained within strings.
https://github.com/alexmojaki/jsonfinder
Last synced: 20 days ago
JSON representation
Python library to easily handle JSON contained within strings.
- Host: GitHub
- URL: https://github.com/alexmojaki/jsonfinder
- Owner: alexmojaki
- Created: 2015-03-08T21:34:26.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-22T19:34:07.000Z (over 7 years ago)
- Last Synced: 2024-10-17T15:37:50.413Z (26 days ago)
- Language: Python
- Size: 21.5 KB
- Stars: 6
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
``jsonfinder`` lets you find and extract JSON objects and arrays embedded within a string using a simple iterator. For example::
>>> s = 'jack [1,2,3] john'
>>> for start, end, obj in jsonfinder(s):
... print start, ':', end
... if obj is None:
... print 'String:', repr(s[start:end])
... else:
... print 'List of length', len(obj)
0 : 5
String: 'jack '
5 : 12
List of length 3
12 : 17
String: ' john'
>>> assert len(s) == endTwo other convenience methods are also provided: ``has_json`` and ``only_json``::
>>> has_json('stuff {"key": "value"} things')
True
>>> has_json('stuff only')
False
>>> only_json('stuff {"key": "value"} things')[2]
{u'key': u'value'}
>>> only_json('stuff only')
Traceback (most recent call last):
...
ValueError: No JSON object found in argument.
>>> only_json('{}{}')
Traceback (most recent call last):
...
ValueError: More than one JSON object found in the argument.All the methods allow a custom JSONDecoder to be passed in for flexibility.
The library also includes a command-line tool to format JSON and filter out parts of the input based on whether JSON is present.
It's like a more flexible version of python's built in ``json.tool``, a ``grep -v`` for JSON, and more. For example::$ cat cli_example.txt
This line contains no JSON and will be deleted by the --delete other-lines option.
On the other hand {"json": ["is", "formatted"] } and text surrounding it is preserved (but can also be removed if desired).
$ jsonfinder -i cli_example.txt --delete other-lines
On the other hand {
"json": [
"is",
"formatted"
]
} and text surrounding it is preserved (but can also be removed if desired).
$ jsonfinder -i cli_example.txt --delete other-lines | jsonfinder --delete context --format tiny
{"json":["is","formatted"]}See the ``--help`` option in the command-line for more details.
Installation is as simple as::
pip install jsonfinder