合并json文件抛出错误:JSONDecodeError:额外的数据:行2列1 (char 376)



我是一个新手,试图使用我在学术环境中运行的模拟得到的json文件。每次我运行模拟时,它都会生成一个新的json文件,其中包含许多迭代。我已经尝试了许多不同的方法来让它合并,我只能让它打印以下代码:

import json
i = 'a'
user = 'name'
data = [json.loads(line) for line in open(f'/local/data/{user}/testing_json_merge/testlog{i}.json', 'r')]
print(data)

.json的格式如下:

# [{
# "target": 0.09812952038889436, 
# "params": {"d_sigma": 0.6090400001793107, "d_tao": 0.38890593065131884, 
# "dq10": -1.9158432178725524, "fk": 0.5920523831391995, 
# "g1": 0.2032381553682863, "gk": 0.22540306720559464, 
# "l1": 0.8194699018730195, "offset": 0.7169580801438833, 
# "zeta": 1.0379064628003654},
# "datetime": {"datetime": "2021-10-01 13:54:23", "elapsed": 0.0, "delta": 0.0}
# }, 
# {
# "target": 0.014074890873478093, 
# "params": {"d_sigma": 0.6482184697214659, "d_tao": 0.5626897579230419, "dq10": -1.0414177520045382, "fk": 0.3709149780460721, 
# "g1": 0.5032815992407432, "gk": 0.9008190120526002, "l1": 0.33090841233049606, "offset": 0.4381149729712961, 
# "zeta": 0.5762116089598821}, "datetime": {"datetime": "2021-10-01 13:54:24", "elapsed": 0.895578, "delta": 0.895578}
# }, ... ]

"……"在结尾意味着该格式的模式重复了数百次迭代。

我想把20-30个json文件合并成一个格式相同的json文件,这样我就可以把它导入到模拟器中,以后继续。

更新:我在想,我很确定我的。json文件的格式是这样的,他们缺乏数据结构。我认为我正在使用的程序正在生成一个对象,并一次堆叠一行,只有下一行作为微分器。有没有一种方法可以保持这个结构,但只是用前一个结构的信息扩展它?

你有.json文件,你只需要读取这个文件,然后加载为json对象:

import json
i = 'a'
user = 'name'
with open(f'/local/data/{user}/testing_json_merge/testlog{i}.json', 'r') as f:
data = json.loads(f.read())
print(data)

最新更新