如何将多个 json 个文件合并为一个文件
how to merge multiple json files into a single file
在一个目录下,我可以有多个文件,以...为例...
chunk26.4ec7e9b2.json
{
"/css/app.css": "/css/app.css?id=0f487b3ea1da478a47ce"
}
chunk57.9bc6ea1f.json
{
"/js/app.js": "/js/app.js?id=f3eda47538cccd3ab358",
"/js/empresa.js": "/js/empresa.js?id=2e389af5c75f398c7c97",
"/js/passwordreset.js": "/js/passwordreset.js?id=2f48c7b9a250fb573381",
"/js/prelogin.js": "/js/prelogin.js?id=4835300bf9075df04126"
}
如何将这些文件合并为一个有效的 json 文件,请记住我可以有 N 个文件,它们的名称可以是任何名称但始终带有 json 扩展名,这结果将保存在当前目录中。
预期结果
{
"/js/app.js": "/js/app.js?id=f3eda47538cccd3ab358",
"/js/empresa.js": "/js/empresa.js?id=2e389af5c75f398c7c97",
"/js/passwordreset.js": "/js/passwordreset.js?id=2f48c7b9a250fb573381",
"/js/prelogin.js": "/js/prelogin.js?id=4835300bf9075df04126",
"/css/app.css": "/css/app.css?id=0f487b3ea1da478a47ce"
}
重要的是最后一行不能有逗号。
因为我还在学习python,我得到了一部分,至少我能看到每一行
import glob;
files=[];
for filename in glob.glob("*.json"):
print(filename);
files.append(filename);
print(files);
for filename in files:
with open(filename, "r") as a_file:
for line in a_file:
print(line)
...但我真的不知道这是达到预期结果的最功能或最实用的方法
您可以使用一个名为 package-json-merge 的小工具。这是一个 nodejs 库,但我认为在这里值得一提。
请注意,当我们谈论相似字段时,文件的顺序很重要
你的情况可能是这样的
package-json-merge chunk57.9bc6ea1f.json chunk26.4ec7e9b2.json > result.json
import json
files = ['file1.json', 'file2.json', 'file3.json']
combined_json = {}
for filename in files:
with open(filename) as f:
file_json = json.load(f)
combined_json.update(file_json)
在一个目录下,我可以有多个文件,以...为例...
chunk26.4ec7e9b2.json
{
"/css/app.css": "/css/app.css?id=0f487b3ea1da478a47ce"
}
chunk57.9bc6ea1f.json
{
"/js/app.js": "/js/app.js?id=f3eda47538cccd3ab358",
"/js/empresa.js": "/js/empresa.js?id=2e389af5c75f398c7c97",
"/js/passwordreset.js": "/js/passwordreset.js?id=2f48c7b9a250fb573381",
"/js/prelogin.js": "/js/prelogin.js?id=4835300bf9075df04126"
}
如何将这些文件合并为一个有效的 json 文件,请记住我可以有 N 个文件,它们的名称可以是任何名称但始终带有 json 扩展名,这结果将保存在当前目录中。
预期结果
{
"/js/app.js": "/js/app.js?id=f3eda47538cccd3ab358",
"/js/empresa.js": "/js/empresa.js?id=2e389af5c75f398c7c97",
"/js/passwordreset.js": "/js/passwordreset.js?id=2f48c7b9a250fb573381",
"/js/prelogin.js": "/js/prelogin.js?id=4835300bf9075df04126",
"/css/app.css": "/css/app.css?id=0f487b3ea1da478a47ce"
}
重要的是最后一行不能有逗号。
因为我还在学习python,我得到了一部分,至少我能看到每一行
import glob;
files=[];
for filename in glob.glob("*.json"):
print(filename);
files.append(filename);
print(files);
for filename in files:
with open(filename, "r") as a_file:
for line in a_file:
print(line)
...但我真的不知道这是达到预期结果的最功能或最实用的方法
您可以使用一个名为 package-json-merge 的小工具。这是一个 nodejs 库,但我认为在这里值得一提。
请注意,当我们谈论相似字段时,文件的顺序很重要
你的情况可能是这样的
package-json-merge chunk57.9bc6ea1f.json chunk26.4ec7e9b2.json > result.json
import json
files = ['file1.json', 'file2.json', 'file3.json']
combined_json = {}
for filename in files:
with open(filename) as f:
file_json = json.load(f)
combined_json.update(file_json)