合并Json文件时创建新索引

j9per5c4  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(114)

我有多个Json文件,它们具有完全相同的结构,只是它们的索引范围都从0到x(例如,0到54; 0到60)。我正在寻求将它们合并到一个最终的Json文件中,新的索引范围从0到x。

Json文件索引概述:

0:
 Title:
 Location:
 Price:
 Caracs:
    Terrace:
    AC:
    Lift:

1:
 ...

我尝试过concat方法,但它不能以正确的方式重组数据,我在多个平台上寻找文档,但没有一个能让我使用它:

完整代码

import json
import pandas as pd

with open('Belem_data_p1.json') as f1:
    data1=json.load(f1)
with open('Belem_data_p2.json') as f2:
    data2=json.load(f2)

df1=pd.DataFrame([data1])
df2=pd.DataFrame([data2])

MergeJson=pd.concat([df1,df2],ignore_index=True)
MergeJson.to_json('MergingMergersTrial.json')
print (MergeJson)

数据最多可以这样重新组织:

0:
   0:
     Title:
     Location:
     ...
   1:
     Title:
     Location:
     ...

 1:
   0:
     Title:
     Location:
     ...
   1:
     Title:
     Location:
     ...

每个文件的索引只是半忽略,行按3分组并放置在索引中...我需要它这样显示:

0:
  Title:
  ...
1:
  Title:
  ...
2:
  Title:
  ...
3:
  Title:

...
您可以在这里查看Json文件示例:LINK
提前感谢您的帮助!:)

qncylg1j

qncylg1j1#

考虑3个json文件:

a.json: 0-5
b.json: 0-3
c.json: 0-4

假设你想得到一个单独的json,比如:

0:
   a: ...
   b: ...
   c: ...
...
3:
   a: ...
   b: ...
   c: ...
4:
   a: ...
   c: ...
5:
   a: ...

我认为您可以用途:

import json

temp = {}
for name in ["a", "b", "c"]:
    with open(f"{name}.json") as fp:
         temp[name] = json.load(fp)

x = 5

out = {
    f"{i}": {
        name: temp[name][f"{i}"]
        for name in temp
        if f"{i}" in temp[name]
    }
    for i in range(x+1)
}

with open("out.json", "w") as fp:
    json.dump(out, fp)

相关问题