2014-02-05 35 views
2

我正在加载一个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 
+1

'outfile.write(out +'\ n')'? –

+0

我看不到_current output_和_look就像this_输出中的任何区别。 – JamesThomasMoon1979

+0

@ JamesThomasMoon1979我想有人编辑它,它最初不会添加换行符,所以输出是单个字符串。 – user2338089

回答

7

的格式化有点打破了你的消息,但我相信你想每次写调用(每个职位)后换行符。

只要做outfile.write(out + '\n')。在给定的系统上,\n将被自动转换为适当的行分隔符。

+0

钉钉了!我每次都会在格式化的时候提出一个问题。谢谢您的帮助。 – user2338089

相关问题