从 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
相关推荐
Csvn19 小时前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
cch891820 小时前
Python主流框架全解析
开发语言·python
Java成神之路-20 小时前
SpringMVC 响应实战指南:页面、文本、JSON 返回全流程(Spring系列13)
java·spring·json
sg_knight20 小时前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
好运的阿财20 小时前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
张張40820 小时前
(域格)环境搭建和编译
c语言·开发语言·python·ai
weixin_4235339920 小时前
【Windows11离线安装anaconda、python、vscode】
开发语言·vscode·python
Ricky111zzz20 小时前
leetcode学python记录1
python·算法·leetcode·职场和发展
小白学大数据21 小时前
Selenium+Python 爬虫:动态加载头条问答爬取
爬虫·python·selenium
Hui Baby21 小时前
springboot读取配置文件
后端·python·flask