Вывод, который вы получаете, указывает, что result
содержит список строк JSON, а не список объектов.Вам не нужно звонить json.dumps()
, они уже отформатированы как JSON.Вы должны просто написать каждую из них отдельной строкой в файле журнала.
with open(host_log_path, "a") as log_file:
for msg in result:
log_file.write((msg if type(msg) is str else json.dumps(msg)) + "\n")
Вы также должны использовать режим a
, чтобы добавить файл журнала.Ваш код очищает старое содержимое каждый раз, когда вы открываете его.
Если вы хотите записать их как один массив JSON, вы можете вызвать json.loads()
в цикле.
with open(host_log_path, "w") as log_file:
msgs = [json.loads(msg) if type(msg) is str else msg for msg in result]
json.dump(msgs, log_file)