Ваши два решения не делают одно и то же. Первый пишет допустимый объект JSON. Второй пишет, вероятно, правильный (но вы должны быть осторожным) файл JSONlines (и, возможно, также NDJSON / LDJSON и NDJ). Таким образом, способ обработки данных позже будет совсем другим. И это самое главное: хотите ли вы файл JSON или файл JSONlines?
Но так как вы спросили о производительности: это зависит.
Файлы Python по умолчанию буферизуются, поэтому выполнение целой связки небольших записей выполняется лишь чуть-чуть медленнее, чем выполнение одной большой записи. Но это крошечный бит медленнее, а не ноль .
С другой стороны, создание огромного списка в памяти означает выделение и копии, которые в противном случае не нужны. Это почти наверняка будет более значимым, если только ваши значения не очень малы, а ваш список не очень короткий.
Не видя ваших данных, я бы дал 10: 1 шансов, что итеративное решение получится быстрее, но зачем полагаться на это едва образованное предположение? Если это имеет значение, сравните с вашими фактическими данными timeit
.
С третьей стороны, 81 000 типичных записей JSON - это, по сути, ничто, поэтому, если вы не делаете это миллионы раз, возможно, даже не стоит измерять. Если вы потратите час на то, чтобы понять, как его измерить, выполнить тесты и интерпретировать результаты (не говоря уже о времени, которое вы потратили на SO), сэкономить 23 миллисекунды в день в течение недели, а затем больше ничего… ну, чтобы программист, это всегда привлекательно, но все же это не всегда хорошая идея.