如何将json文件重新处理为每个记录的单行?

时间:2017-01-22 13:38:14

标签: python json

{
"name": "16287e9cdf", 
"width": 500, 
"height": 325, 
"width": 1024, 
"height": 665
},
{
"name": "16287e9cdf", 
"width": 500, 
"height": 325, 
"width": 1024, 
"height": 665
}

如何在json中重新处理这些值,如下所示,在Python的帮助下,Spark可以进行分析?

{"name": "16287e9cdf","width": 500,"height": 325,"width": 1024,"height": 665}
{"name": "16287e9cdf","width": 500,"height": 325,"width": 1024,"height": 665}

我需要:1。每个{.......}是一行; 2.删除","在线之间。

我在Json文件中有2,000,0000条记录。怎么做....

1 个答案:

答案 0 :(得分:0)

如果你能在内存中阅读它,你可以这样做:

首先将[]分别从命令行添加到第一行和最后一行,以使其成为有效的json。

$ sed -i '1i [' filename
$ sed -i -e '$a]' filename

然后你可以用python处理它:

import json

with open('filename', 'r') as f:
    a = json.load(f)

with open('new_filename', 'w') as f2:
    for b in a:
        f2.write(str(b)+'\n')