Я бы хотел прочитать несколько объектов JSON из файла / потока в Python, по одному. К сожалению, json.load ()
только .read ()
до конца файла; похоже, нет никакого способа использовать его для чтения одного объекта или ленивого перебора объектов.
Есть ли способ сделать это?Идеально было бы использовать стандартную библиотеку, но если есть сторонняя библиотека, я бы использовал ее.
На данный момент я помещаю каждый объект в отдельную строку и использую json.loads (f. readline ())
, но я бы предпочел не делать этого.
import my_json as json
import sys
for o in json.iterload(sys.stdin):
print("Working on a", type(o))
{"foo": ["bar", "baz"]} 1 2 [] 4 5 6
$ python3.2 example.py < in.txt
Working on a dict
Working on a int
Working on a int
Working on a list
Working on a int
Working on a int
Working on a int