выводить группу объектов json на новую строку вместо одной строки

Я загружаю файл json и пытаюсь извлечь некоторые значения, а затем выводить эту группу значений по строкам.

Текущий вывод выглядит так:

{"time":"1:2:2","post":"1","user":"4","text":"Masaru Emoto"}{"time":"1:3:8","post":"8","user":"5","text":"Meteors"}{"time":"7:4:5","post":"1","user":"8","text":"Olympics"}

И я хочу, чтобы это выглядело так:

{"time":"1:2:2","post":"1","user":"4","text":"Masaru Emoto"}
{"time":"1:3:8","post":"8","user":"5","text":"Meteors"}
{"time":"7:4:5","post":"1","user":"8","text":"Olympics"}

Я не могу понять, где добавить "\ n", чтобы исправить вывод. Заранее спасибо за помощь.

Код:

import json

json_data = open('somefile.json', 'r+').read().decode("utf-8")
jdata = json.loads(json_data)

def id_generator(d):    

with open('formatted_file' + '.json', 'w') as outfile:
    for k, v in d.items():
        if isinstance(v, dict):
            id_generator(v)                    
        if isinstance(v, list):            
            for post in v:
                formated = {"time":post.get('created_time'),"user":post['from']['id'],
                               "post":post.get('id'),"text":post.get('description')}                                        
                out = json.dumps(formated, separators=(',', ':'))                                                         
                outfile.write(out)                                        
if __name__ == '__main__':
    try:
        id_generator(jdata)
    except TypeError:
        pass 

person adam    schedule 05.02.2014    source источник
comment
Я не вижу никакой разницы в текущем выходе и таком выходе.   -  person JamesThomasMoon    schedule 24.02.2015
comment
@ JamesThomasMoon1979 Я думаю, что кто-то редактировал его, изначально он не добавлял символ новой строки, поэтому вывод был одной строкой.   -  person adam    schedule 24.02.2015


Ответы (1)


Форматирование как бы нарушило ваше сообщение, но я предполагаю, что вы хотите переводить строку после каждого вызова записи (каждого сообщения).

Просто сделай outfile.write(out + '\n'). \n будет автоматически преобразован в правильный разделитель строк в данной системе.

person Xarn    schedule 05.02.2014
comment
Успешно справился! Бою с форматированием КАЖДЫЙ раз задаю вопрос. Спасибо за помощь. - person adam; 06.02.2014