如何在Python中拆分JSON文件中括号包裹的内容为独立文件?
用Python提取JSON中括号包裹的句子并保存为独立文件
嘿,这个需求其实挺常见的,我来给你捋清楚实现步骤,附上可直接用的代码,还会讲清楚细节~
步骤拆解
咱们先把整个流程理明白:读取JSON文件 → 解析拿到目标字符串 → 提取所有括号内的句子 → 逐个保存成独立文件。
完整代码实现
import json import re def extract_and_save_sentences(json_file_path): # 1. 读取并解析JSON文件 try: with open(json_file_path, 'r', encoding='utf-8') as f: data = json.load(f) # 这里假设你的JSON里,带括号的句子存在某个键下,比如"content" # 如果结构不一样,你需要改成对应的键名,比如data["sentences"] target_text = data.get("content", "") if not target_text: print("JSON里没找到目标内容,请检查键名是否正确!") return # 2. 用正则提取所有括号包裹的内容 # 正则r'\((.*?)\)'是匹配小括号内的非贪婪内容,适合无嵌套括号的场景 sentences = re.findall(r'\((.*?)\)', target_text) if not sentences: print("没找到任何括号包裹的句子!") return # 3. 逐个保存为独立文件 for idx, sentence in enumerate(sentences, start=1): # 去除句子前后的空白字符(比如换行、空格) cleaned_sentence = sentence.strip() if cleaned_sentence: # 跳过空内容 file_name = f"sentence_{idx}.txt" with open(file_name, 'w', encoding='utf-8') as output_file: output_file.write(cleaned_sentence) print(f"已保存文件:{file_name}") print("所有句子处理完成!") except FileNotFoundError: print(f"错误:找不到文件 {json_file_path}") except json.JSONDecodeError: print("错误:JSON文件格式不正确,请检查!") except Exception as e: print(f"发生未知错误:{str(e)}") # 调用示例,替换成你的JSON文件路径 extract_and_save_sentences("your_file.json")
关键细节说明
- JSON结构适配:代码里假设目标字符串存在
"content"键下,如果你的JSON结构不同(比如键名是"text"),一定要修改data.get("content", "")里的键名。 - 正则匹配:用
r'\((.*?)\)'是因为它会非贪婪匹配每个小括号里的内容,避免把多个括号的内容连在一起提取。如果你的句子里有嵌套括号(比如(我是(嵌套)句子)),这个正则就不适用了,那时候需要用更复杂的递归正则或者语法分析器,不过一般句子不会有这种情况。 - 文件命名:用
sentence_1.txt、sentence_2.txt这种递增命名,你也可以根据句子内容生成更有意义的文件名(比如去掉特殊字符后作为文件名),但要注意文件名不能包含操作系统禁止的字符(比如/、\、:等)。 - 异常处理:代码里加了几种常见错误的捕获,比如文件找不到、JSON格式错误,方便你排查问题。
内容的提问来源于stack exchange,提问作者Display Name
相关产品推荐
相关产品推荐

