Вызывайте jq для каждого нового объекта json, напечатанного сценарием Python, а не только по завершении.Python

Программы на Python
Гость
Вызывайте jq для каждого нового объекта json, напечатанного сценарием Python, а не только по завершении.

Сообщение Гость »


У меня есть скрипт Python, который наблюдает за сокетом и при получении данных записывает JSON в стандартный вывод.

Приведенный ниже пример сценария иллюстрирует поведение: новый JSON выводится каждые 3 секунды.

импортировать json, время защита new_json(n): кадр = { «Итерация»: n, «Поле0»: 0, «Поле1»: 1, «Поле2»: 2 } печать(json.dumps(frame)) новый_json(1) время.сон(3) новый_json(2) время.сон(3) новый_json(3) Выходные данные:

{"Итерация": 1, "Поле0": 0, "Поле1": 1, "Поле2": 2} {"Итерация": 2, "Поле0": 0, "Поле1": 1, "Поле2": 2} {"Итерация": 3, "Поле0": 0, "Поле1": 1, "Поле2": 2} Если я передам это в jq, используя python3 jqtest.py | jq . он печатает JSON только после полного завершения сценария.

Как я могу вызывать jq для каждого нового объекта JSON, полученного во время выполнения, а не только в конце?

Вернуться в «Python»