从 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
相关推荐
king966618 分钟前
python动态全局缓存配置
python·缓存
西猫雷婶23 分钟前
python学opencv|读取图像(四十三)使用cv2.bitwise_and()函数实现图像按位与运算
开发语言·python·opencv
qwe35263329 分钟前
自定义数据集使用scikit-learn中的包实现线性回归方法对其进行拟合
开发语言·python
人生无根蒂,飘如陌上尘1 小时前
pycharm踩坑(1)
ide·python·pycharm
I"ll carry you1 小时前
【Django教程】用户管理系统
python·django
cuber膜拜2 小时前
jupyter使用 Token 认证登录
ide·python·jupyter
周山至水数翠峰2 小时前
.net 如何处理网页的Json请求?
服务器·json·.net
张登杰踩3 小时前
pytorch2.5实例教程
pytorch·python
codists3 小时前
《CPython Internals》阅读笔记:p353-p355
python
步、步、为营3 小时前
C# 与.NET 日志变革:JSON 让程序“开口说清话”
c#·json·.net