从 Word 文档中提取所有的有效 JSON 对象(包含跨段落)

文章目录

一、概述

从 word 中提取所有有效 json (包含跨段落的 json)。

二、代码

python 复制代码
"""
从 Word 文档中提取所有的 JSON 对象
"""

from docx import Document
import json

def extract_json_from_docx(doc_path):
    """从 Word 文档中提取所有的 JSON 对象"""
    document = Document(doc_path)
    json_objects = []

    all_text = ""
    for para in document.paragraphs:
        all_text += para.text.strip()

    stack = []
    start_index = 0
    for i in range(len(all_text)):
        if all_text[i] == "{":
            stack.append("{")
            if len(stack) == 1:  # 当栈中只有一个 "{" 时,记录开始索引
                start_index = i
        elif all_text[i] == "}":
            if stack:  # 如果栈不为空
                stack.pop()
                if not stack:  # 如果弹出后栈为空,表示找到一个完整的 JSON 对象
                    json_str = all_text[start_index: i+1]
                    try:
                        json_obj = json.loads(json_str)
                        json_objects.append(json_obj)
                        print(f"有效 JSON: {json_obj}")
                    except json.JSONDecodeError:
                        print(f"无效 JSON: {json_str}")

    return json_objects
相关推荐
Testopia4 小时前
走一遍 AI 学习之路 —— AI实例系列说明
开发语言·人工智能·python
机 _ 长4 小时前
YOLO26 改进 | 训练策略 | 知识蒸馏 (Response + Feature + Relation)
python·深度学习·yolo·目标检测·机器学习·计算机视觉
草青工作室4 小时前
java-FreeMarker3.4自定义异常处理
java·前端·python
hrrrrb4 小时前
【算法设计与分析】随机化算法
人工智能·python·算法
芋头莎莎4 小时前
基于MQTT通讯UNIapp程序解析JSON数据
前端·uni-app·json
D___H4 小时前
Part10_编写自己的解释器
python
Zero_to_zero12344 小时前
Claude code系列(一):claude安装、入门及基础操作指令
人工智能·python
Yeats_Liao4 小时前
异步推理架构:CPU-NPU流水线设计与并发效率提升
python·深度学习·神经网络·架构·开源
hnxaoli5 小时前
统信小程序(八)归档目录自动调整
linux·python