A Python wrapper to YAJL providing standard iterator interface to streaming JSON parsing
Ijson is a Python wrapper to YAJL which is a streaming SAX-like JSON parser. Ijson provides a standard Python iterator interface for it.
from ijson import parse f = urlopen('http://.../') # some huge JSON parser = parse(f) while True: prefix, event, value = parser.next() if prefix == 'earth.europe' and event == 'start_array': while prefix.startswith('earth.europe'): prefix, event, value = parser.next() if event == 'map_key': key = value prefix, event, value = parser.next() do_something_with(key, value)
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.