На днях узнал про формат JSON Lines. Это такой CSV на стероидах:
— каждая запись идет отдельной строкой, как в CSV;
— но при этом представляет собой полноценный JSON.
Например:
{ "id":11, "name":"Дарья" }
{ "id":12, "name":"Борис" }
{ "id":21, "name":"Елена" }Очень классная штука:
— Подходит для объектов сложной структуры (в отличие от csv);
— Легко потоково читать, не загружая файл целиком в память (в отличие от json);
— Легко дописывать новые записи к существующему файлу (в отличие от json).
JSON, в принципе, тоже можно читать потоково. Но посмотрите, насколько это проще с JSON Lines:
https://replit.com/@antonz/json-lines#main.py