修复Python函数以遍历目录中的JSON文件列表并合并到单个JSON文件中的方法如下:
import os
import json
def merge_json_files(directory, output_file):
json_data = []
# 遍历目录中的所有文件和子目录
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(".json"):
file_path = os.path.join(root, file)
# 读取JSON文件内容
with open(file_path, 'r') as f:
try:
data = json.load(f)
json_data.append(data)
except json.JSONDecodeError:
print(f"Error decoding JSON file: {file_path}")
# 合并所有JSON数据
merged_data = {}
for data in json_data:
merged_data.update(data)
# 将合并后的数据写入单个JSON文件
with open(output_file, 'w') as f:
json.dump(merged_data, f, indent=4)
print(f"JSON files merged successfully into {output_file}")
# 示例用法
merge_json_files('/path/to/directory', '/path/to/output.json')
这个函数的作用是遍历指定目录中的所有JSON文件,并将它们合并到一个单独的JSON文件中。函数首先定义一个空的列表json_data
来存储所有的JSON数据。
然后,使用os.walk()
函数遍历目录中的所有文件和子目录。对于每个文件,检查文件扩展名是否为.json
,如果是,则将文件路径存储在file_path
变量中。
接下来,使用open()
函数打开JSON文件,并使用json.load()
函数加载文件内容。如果文件内容无法解析为有效的JSON格式,将会捕获json.JSONDecodeError
异常,并打印错误消息。
然后,将加载的JSON数据添加到json_data
列表中。
完成遍历后,创建一个空的字典merged_data
来存储合并后的数据。
使用update()
方法将每个JSON数据合并到merged_data
字典中。
最后,使用open()
函数以写入模式打开输出文件,并使用json.dump()
函数将合并后的数据写入文件中。indent=4
参数用于指定缩进级别,使输出的JSON文件更易读。
在函数的最后,打印合并成功的消息,并返回合并后的JSON文件路径。
这个函数可以通过传递目录路径和输出文件路径来使用。请将/path/to/directory
替换为要遍历的目录路径,将/path/to/output.json
替换为要输出的合并后的JSON文件路径。
腾讯云相关产品和产品介绍链接地址:
请注意,以上提到的腾讯云产品仅作为示例,您可以根据实际需求选择适合的产品。
领取专属 10元无门槛券
手把手带您无忧上云