ijson 0.8.0
pip install ijson==0.8.0
Released:
A Python wrapper to YAJL providing standard iterator interface to streaming JSON parsing
Navigation
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: LICENSE.txt
- Author: Ivan Sagalaev
Project description
Ijson is a Python wrapper to YAJL which is a streaming SAX-like JSON parser. Ijson provides a standard Python iterator interface for it.
Usage
All usage example will be using a JSON document describing geographical objects:
{ "earth": { "europe": [ {"name": "Paris", "type": "city", "info": { ... }}, {"name": "Thames", "type": "river", "info": { ... }}, // ... ], "america": [ {"name": "Texas", "type": "state", "info": { ... }}, // ... ] } }
Most common usage is having ijson yield native Python objects out of a JSON stream located under a prefix. Here’s how to process all European cities:
from ijson import items f = urlopen('http://.../') objects = items(f, 'earth.europe.item') cities = (o for o in objects if o['type'] == 'city') for city in cities: do_something_with(city)
Sometimes when dealing with a particularly large JSON payload it may worth to not even construct individual Python objects and react on individual events immediately producing some result:
from ijson import parse f = urlopen('http://.../') parser = parse(f) stream.write('<geo>') for prefix, event, value in parser: if (prefix, event) == ('earth', 'map_key'): stream.write('<%s>' % value) continent = value elif prefix.endswith('.name'): stream.write('<object name="%s"/>' % value) elif (prefix, event) == ('earth.%s' % continent, 'end_map'): stream.write('</%s>' % continent) stream.write('</geo>')
Acknowledgements
Ijson was inspired by yajl-py wrapper by Hatem Nassrat. Though ijson borrows almost nothing from the actual yajl-py code it was used as an example of integration with yajl using ctypes.
Project details
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: LICENSE.txt
- Author: Ivan Sagalaev
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ijson-0.8.0.tar.gz
.
File metadata
- Download URL: ijson-0.8.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff36873499d9a14db3ef91e7e991562323cdbda94e26e27f9f9916a2f1a012b9 |
|
MD5 | 1dd7b8ab9766c9ad64c8049f8389e401 |
|
BLAKE2b-256 | 8658136d4b339307d50ce486d1ad0ae026eed5ad108d922744731f42929f6c87 |