将逗号添加到JSON对象列表中

时间:2017-07-19 13:35:05

标签: javascript php python json

我的文本文件包含对象列表。

{ a:"1", b:"2", c: "3"}{ a:"1", b:"2", c: "3"}{ a:"1", b:"2", c: "3"}

我想让它成为有效的Json文件。对于instanse:

[{ a:"1", b:"2", c: "3"},{ a:"1", b:"2", c: "3"},{ a:"1", b:"2", c: "3"}]

文件非常大 - 600mb。我需要使用可以更改文件的语言来完成此操作。我试图找到解决方案,但我不能。

5 个答案:

答案 0 :(得分:1)

KISS:将}{替换为},{并换入[]

答案 1 :(得分:1)

Python中一个简单而简单的解决方案:

import json
tmp = '{ "a":"1", "b":"2", "c": "3"}{ "a":"1", "b":"2", "c": "3"}{ "a":"1", "b":"2", "c": "3"}' # test string
tmp = tmp.replace('}{', '},{') # replace '}{' with '},{'
tmp = '[' + tmp + ']' # add brackets around it
json_string = json.loads(tmp) # confirm that it's valid json
print(json_string) # print the json_string

将打印

[{'a': '1', 'b': '2', 'c': '3'}, {'a': '1', 'b': '2', 'c': '3'}, {'a': '1', 'b': '2', 'c': '3'}]

答案 2 :(得分:0)

你可以这样使用

  [
    { "a":"1", 
      "b":"2", 
      "c": "3"
    },
    { "a":"1", 
      "b":"2", 
      "c": "3"
    },
    { "a":"1", 
      "b":"2", 
      "c": "3"
    }
 ]

答案 3 :(得分:0)

您好,我看到此帮助可以作为贡献。在第一个def comma_json内部添加;然后structure_json将[]添加到所有内容

def comma_json():

with open("file1.json", "r+") as f:
    old = f.read()
    f.seek(0)  # rewind
    f.write(old.replace('}{', '},{'))
    f.close

def structure_json():
  with open("file1.json", "r+") as f:
    old = f.read()
   with open("file2.json", "w") as r:
    tmps = '[' + str(old) + ']'
    json_string = json.loads(tmps)

    json.dump(json_string, r, indent=2)
    f.close

答案 4 :(得分:-1)

不是最佳解决方案,但可以按照以下步骤进行操作

  1. 如果输入是对象格式,则转换为字符串json.stringify()
  2. 替换"} {"与"},{"并在字符串的开头和结尾添加开始和结束括号
  3. 现在将字符串转换为对象。