用python 写一个脚本,提取一个目录下多份复杂内容文件中的json数据,json数据在文件内容的[]中,需要用正则表达式,提取每个文件[]中的json数据并合并成一个文件
时间: 2024-12-20 20:31:02 浏览: 0
读取Excel表格将其中的数据通过Python脚本生成Json文件以及对应的C#实体类.zip
为了完成这个任务,你可以使用Python的`os`, `re`以及`json`库。以下是一个简单的示例脚本,它会遍历指定目录下的所有.json文件,提取其中嵌套在`[]`中的JSON数据,并将它们合并到一个新的文件中:
```python
import os
import re
import json
# 指定要搜索的目录
dir_path = 'your_directory_path'
# 定义函数来处理单个文件
def extract_json_from_file(file_path):
with open(file_path, 'r') as file:
content = file.read()
# 使用正则表达式查找嵌套在[]中的JSON片段
json_data_pattern = r'\[.*\]'
matches = re.findall(json_data_pattern, content)
# 尝试解析找到的JSON数据
merged_json = []
for match in matches:
try:
temp_json = json.loads(match)
merged_json.extend(temp_json) # 如果是列表,直接合并;如果是字典,可能会有问题
except json.JSONDecodeError:
print(f"无法解析文件 {file_path} 的部分 JSON 数据: {match}")
return merged_json
# 遍历目录及其子目录中的所有.json文件
merged_json_list = []
for root, dirs, files in os.walk(dir_path):
for file in files:
if file.endswith('.json'):
file_path = os.path.join(root, file)
data = extract_json_from_file(file_path)
merged_json_list.extend(data)
# 将所有数据合并到一个新文件中
with open('merged_data.json', 'w') as outfile:
json.dump(merged_json_list, outfile, ensure_ascii=False)
#
阅读全文