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

WPS Office JS宏实现Excel转换为JSON格式数据 有时我们在整理文档时,产品会通过Excel将功能点和功能描述分层级整理出来,有时需要将此数据导入到系统中,Web端对Json这类格式数据比较友好,所以这里试着使用Excel JS宏将数据导出为JSON数据。通过Excel JS宏,将表格中整理出的数据,以”列“形式导出为JSON数据格式。 阅读详情

一、概述

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

二、代码

"""
从 Word 文档中提取所有的 JSON 对象
原理:
1.遇到"{",将"{"存入数组,并开始计数
2.遇到"}",则取出全部字符,如果没有剩余,则是一个完整的 {}
3.判断完整的{}是否是有效的 json
"""

from docx import Document
import json


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

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

    return extract_json_from_text(all_text)


def extract_json_from_text(all_text):
    json_objects = []
    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()
                # print(stack)
                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


def remove_outer_braces(text):
    """
    单独处理{{}}这种情况
    :param text: 包含嵌套 JSON 的文本
    :return: 去除了最外层大括号的 JSON 字符串
    """
    start_index = text.find('{{')
    end_index = text.rfind('}}')

    if start_index != -1 and end_index != -1 and start_index < end_index:
        return text[start_index + 1:end_index + 1]
    else:
        return text


if __name__ == "__main__":
    # doc_path = "/Users/wangfugui/Downloads/test.docx"
    # extract_json_from_docx(doc_path)
    text = """aaa
    {{
        "name": "张三",
        "age": 30,
        "city": "上海"
    }}
    """
    print(remove_outer_braces(text))
    print('*'*10)
    print(extract_json_from_text(remove_outer_braces(text)))
    
Java poi解析word文档并修改Table 实际背景:解析api.json文件,加载以docx结尾的word模板,并将处理好的数据填写进去。 阅读详情

相关推荐

ApiFox导出apifox.json转Word文档

ApiFox导出apifox.json转Word文档。

qq_35984182的博客 3626

批量给 Word 中 JSON 增加代码块样式

将docx 文档中 json 块快速修改样式,原理:计算出段落中有效的 json,json 则增加代码块样式。

学习笔记 3374

Java POI 导出WORD文档,图片导出在指定位置

废话不多说,直接上代码 @Test public void testWordFX() throws IOException, InvalidFormatException, Exception{ //以下代码不一定要用,可以通过其他方法打开自己项目里面的模板 from this InputStream inputStream = ClassPathResource....

lindiwo的博客 4332

Word转json转txt,word拆分处理

因为笔者的word文档是pdf转word得到的,所以word的标题没有级别,手动分级又过于麻烦,笔者想到的方法是 根据字数和换行符来判断标题,我采用15个字作为标题的限制,超过15个字就作为内容存储,这样我的json文件就有了两层结构,一个“title”,一个“content”。这个方法粗糙简单,但还算实用。中间出了一个问题是分割文段采用的是根据'\n'分割,所以判断的时候就不需要将结尾是‘\n’作为一个判断条件了。

Joeybee的博客 2962

JSON数据格式介绍中文WORD版

资源名称:JSON数据格式介绍 中文WORD版内容简介:本文档主要讲述的是JSON数据格式介绍;JSON是 Javascript Object Notation的简称,是一种轻量的数据表示方法。jason格式采用key:value的方式记录数据,非常直观,比XML简洁,因而大受欢迎;有需要的朋友可以下载看看资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

世界地图word.json

{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 108.04968049680497, 21.551925078161887 ], [ 106.71406714067143, 20.697182983479223 ], [ 105.88245882458824, 19.752735282819955 ], [ 105.66285662856632, 19.05878625545384 ],

关于复制word文档内容到JSON文件报错的修改

我们想把word里面的json数据复制到我们创建的json文件里面时可能会出现错误的解决方法

weixin_49931650的博客 1480

为word编写一个Json,一同放入assets中,完成word目录跳转功能

写一个Json,一同放入assets中,完成word目录跳转功能。内涵水印,破解水印有奖!

word转json

if element.tag.endswith('tbl') and element not in tab: # 找到表格。if table_count <= len(input_doc.tables): # 确保索引在范围内。paragraph (docx.text.paragraph.Paragraph): 段落对象。element (xml.etree.ElementTree.Element): XML元素。emf_blob (bytes): EMF 文件的二进制数据。# 结束对当前段落的检查。

m0_57655541的博客 2634

Stata面板数据OLS回归分析实战指南

OLS回归作为计量经济学的核心分析方法,通过最小化残差平方和实现参数估计,广泛应用于经济学实证研究。其技术价值在于模型简洁、结果易于解释,特别适合处理面板数据中的复杂关系。在实际应用中,配合robust标准误能有效解决异方差问题,而固定效应模型则可控制个体特异性。本文以Stata软件为例,详细演示从数据导入、描述性统计到混合OLS和固定效应模型构建的全流程,重点解析面板数据特有的格式设定、模型选择标准以及结果呈现技巧,为经济学研究者提供可直接复用的分析框架。

weixin_29051811的博客 268

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录

本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。

qsc901234的博客 334

JSON 转换为 Word 文档

首先,需要在项目中引入相关的依赖,如。

坚持写博客,大家的关注是我前进的动力! 1904

软件工程期末知识点总结【超详细】

生命周期模型(过程模型):瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。2、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N)3、语句覆盖 就是设计足够的调试用例,使得程序中的每个语句至少执行一次。 5、判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖 6、条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果。7、软件开发时期通常分成4个阶段:总体设计、详细设计、编码和单元测试、综合测试。

这个人好有趣....hh 1万+

【免费下载】 ApiFox JSON转Word文档工具:高效接口文档生成利器

ApiFox JSON转Word文档工具:高效接口文档生成利器 【下载地址】ApiFox导出apifox.json转Word文档 ApiFox导出apifox.json转Word文档本资源文件提供了一个将ApiFox导出的JSON文件转换为Word文档的解决方案 ...

gitblog_06565的博客 2301

S7-1200控制S120变频器

②:硬件目录下,添加实物S120设备进行组态(其它现场设备--PROFINET IO--DRIVES......②:双击S120进行IP地址和设备名称设置(注:此处要与STATER软件设置S120一致)M10.0接通时,电机开始运行,M10.0断开,电机停止,调试完成。①:将S7-1200与S120进行通讯连线。④:STATER软件下设置与组态一致的报文。①:点击添加新设备,按实物进行设备组态。②:打开OB1,编写启动停止程序。①:查看S120报文地址。②:模块下添加DO矢量。③:子模块下添加报文。

weixin_38261173的博客 4868

AI虚拟人物 数字人直播,不用出镜,不用露脸的直播方式(附教程 软件)

我们先来看一组数据,这是我通过蝉妈妈查到的某位虚拟主播的一个带货数据,粉丝还不到 3000 人,每次直播 1 到 4 个小时,30天的总销量达到了1200单,15天,总销售额 2 万,可能相对来说客单价还是比较低,最关键的是才直播了 6 场,如果说他能够一个月直播 20 天,每天花 4个小时去直播,当个副业来做,就可以达到最起码月入 3 万的一个收入水平,我个人觉得是非常的不错的。大家把商品图片放在背景,只要场景设置的不错,场景和产品的关联度高,直播的时候挂上购买链接也会有一定的成交。

. 7万+

实战 | JAVA读取WORD,包含表格。

不能每天都发鸡汤呀,今天分享一篇开发实战。业务需求我们有这样一个需求,需要抽取出WORD文档中的内容,然后组装成特定的json格式发送给第三方引擎接口,输入协议如下:{ "...

飘渺Jam的博客 4894

IEC 104电力规约详细解读(一) - 报文结构、报文分类、ASDU

比如,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧,当然也可以不要求(S帧内容示例参考例1)。所以U帧格式的控制欲第一个字节就只有6种情况,分别是0x83(TESTER确认)、0x43(TESTER命令)、0x23(STOPDT确认)、0x13(STOPDT命令)、0x0B(START确认)、0x07(START命令)ASDU(应用服务数据单元),协议原文格式最好去101协议去看看,会比较详细。遥信、遥测、遥控、遥调、总召、对时等都需要使用I格式传送。

张二狗的博客 1万+

终极指南:使用Simplify-Docx将Word文档轻松转换为JSON格式

Simplify-Docx是一个强大的Python工具包,专门用于将复杂的Word文档(.docx文件)简化为**可读的JSON格式**,让数据提取和模式匹配变得异常简单。这个工具能够智能识别文档中的有意义部分,如段落、表格、列表等,同时忽略大部分样式信息,从而生成结构清晰、易于处理的JSON数据。 ## 📋 为什么需要文档简化工具? 在日常工作中,我们经常需要从Word文档中提取结构化数据

gitblog_00661的博客 1102

遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程

1.新建shp文件地理坐标系保持和影像一致,面类型2.打开属性表3.添加字段这里分类6类,点击添加值添加添加完毕开始人工选地物类型,制作数据集开始标注,标注的时候可以借助谷歌地图来看标记足够多的样本打开面转栅格工具设置nodata值为15。

热爱分享,热爱记录 2526

国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案

国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果

无名何许人的博客 3093

智能文档解析终极指南:如何一键处理跨页文档

MinerU是一款强大的智能文档解析工具,能够将PDF和Office文档等复杂文件转换为LLM友好的markdown或JSON格式,为您的智能工作流提供高效支持。无论是处理学术论文、商业报告还是技术文档,MinerU都能轻松应对,让您的文档处理工作事半功倍。 ## 为什么选择MinerU进行文档解析? 在当今信息爆炸的时代,我们每天都要面对大量的文档。传统的文档处理方式不仅耗时费力,而且难以满

gitblog_00677的博客 758

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

畅写智能文档中台引擎:Word转JSON结构数据

摘要:畅写智能文档中台推出新一代Word结构化处理引擎,支持DOC/DOCX/WPS等主流格式,实现多层级精准内容提取与20+种元素识别。该引擎采用自主研发算法,能智能解析文本、表格、图片等元素,并输出标准化JSON数据。核心功能包括深度文档解析、多元素分离、精细化格式捕获,适用于智能审核、合同分析、RAG应用等场景。通过"文档数据活化"技术,为企业提供从静态文档到智能数据的转化能力,成为数字化转型的关键基础设施,显著提升大模型处理效率与业务自动化水平。(149字)

macobolo1的博客 764

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java word搜索,实战 | Java读取Word,包含表格!

本文转载自微信公众号「JAVA日知录」,作者单一色调。转载本文请联系JAVA日知录公众号。不能每天都发鸡汤呀,今天分享一篇开发实战。业务需求我们有这样一个需求,需要抽取出WORD文档中的内容,然后组装成特定的json格式发送给第三方引擎接口,输入协议如下:{"tables":[{"cells":[{"col":1,"row_span":1,"row":1,"col_span":1,"c...

weixin_42510600的博客 418

使用Python实现Word文档与JSON格式双向转换:完整教程与代码解析

文档内容提取与分析:将Word文档内容转换为结构化JSON数据,便于后续处理和分析自动化报告生成:将JSON数据自动填充到预定义的Word模板中文档格式转换:作为Word与其他格式(如Markdown、HTML)转换的中间步骤内容管理系统:实现文档内容的版本控制和结构化存储完整性:支持文本、样式、表格等Word文档核心元素的转换灵活性:提供了API和命令行两种使用方式,适应不同场景需求实用性:代码可直接用于生产环境,且易于扩展这种转换工具在文档自动化处理内容管理系统和数据迁移。

东方佑 1690

3步搞定:用Python将复杂Word文档转成结构化JSON

还在为处理复杂的Word文档而头疼吗?面对格式混乱、结构不一的.docx文件,传统的数据提取方法往往效率低下。现在,有了simplify-docx这个神器,你可以轻松将任何Word文档转换为清晰的结构化JSON格式,让文档处理变得前所未有的简单! ## 为什么需要文档简化工具? Word文档的复杂性常常让人望而却步。每个.docx文件背后都隐藏着大量的样式信息、布局标记和元数据,这些内容对于数

gitblog_01109的博客 511
上一篇: 批量给 Word 中 JSON 增加代码块样式
下一篇: Python连接Oracle数据库:cx_Oracle与oracledb库的比较与选择
码上富贵
博客等级 码龄17年 1万+粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值