最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用FastMCP實現(xiàn)Word文檔與JSON數(shù)據(jù)互轉

 更新時間:2025年06月16日 09:01:48   作者:東方佑  
這篇文章主要介紹了基于FastMCP框架實現(xiàn)的文檔處理服務,可實現(xiàn)?Word?文檔(.docx)與?JSON?數(shù)據(jù)格式的雙向轉換,通過此服務,開發(fā)者可以輕松實現(xiàn)文檔內容提取、結構化數(shù)據(jù)填充、樣式模板復用等功能,適用于自動化報告生成、數(shù)據(jù)導入導出等場景,需要的朋友可以參考下

一、項目背景

本文分享一個基于 FastMCP 框架實現(xiàn)的文檔處理服務,可實現(xiàn) Word 文檔(.docx)與 JSON 數(shù)據(jù)格式的雙向轉換。通過此服務,開發(fā)者可以輕松實現(xiàn)文檔內容提取、結構化數(shù)據(jù)填充、樣式模板復用等功能,適用于自動化報告生成、數(shù)據(jù)導入導出等場景。

二、核心代碼解析

1. 服務端實現(xiàn)(my_server.py)

import json
from fastmcp import FastMCP
from wan_neng_copy_word import clone_document as word_to_dict
from wan_neng_copy_word_pro import clone_document
from wan_neng_copy_word import clone_document as get_para_style
from gen_all_styles import gen_all_styles

mcp = FastMCP(name="MyServer")

# 基礎問候工具
@mcp.tool
def greet(name: str) -> str:
    """Greet a user by name."""
    return f"Hello, {name}!"

# Word 轉 JSON 工具
@mcp.tool
def word_to_json(word_path: str) -> str:
    """Convert a word document to json."""
    body_s, body_p = word_to_dict(word_path)
    return json.dumps(body_p)

# JSON 轉 Word 工具
@mcp.tool
def json_to_word(word_path: str, json_data: str) -> str:
    """Convert a json to word document."""
    try:
        body_ws, _ = get_para_style('demo_template.docx')
    except:
        gen_all_styles()
        body_ws, _ = get_para_style('demo_template.docx')

    body_s, _ = get_para_style(word_path)
    clone_document(body_s, json.loads(json_data), body_ws, 'cloned_example.docx')
    return 'cloned_example.docx'

# 啟動 MCP 服務
if __name__ == "__main__":
    mcp.run(transport="streamable-http", host="127.0.0.1", port=9000)

關鍵組件說明:

  • FastMCP:基于 MCP 協(xié)議的服務框架,提供工具注冊與調用能力
  • wan_neng_copy_word 系列模塊:實現(xiàn) Word 文檔解析與生成的核心邏輯
  • gen_all_styles:樣式模板生成工具
  • 雙向轉換邏輯
    • word_to_json:提取文檔內容結構并序列化為 JSON
    • json_to_word:應用模板樣式生成新文檔

2. 客戶端測試代碼

import asyncio
from fastmcp import Client

# MCP 服務配置
config = {
    "mcpServers": {
        "document-service": {
            "url": "http://127.0.0.1:9000/mcp",
            "transport": "streamable-http"
        }
    }
}

# 創(chuàng)建客戶端實例
client = Client(config)

async def main():
    async with client:
        # 讀取 JSON 數(shù)據(jù)
        with open("1.json", "r", encoding="utf-8") as f:
            body_p = f.read()
        
        # 調用 JSON 轉 Word 工具
        result = await client.call_tool(
            "json_to_word", 
            {"word_path": "1.docx", "json_data": body_p}
        )
        print(f"生成文檔路徑: {result}")

if __name__ == "__main__":
    asyncio.run(main())

三、運行環(huán)境要求

  • Python 3.8+ 環(huán)境
  • 依賴庫安裝:
pip install fastmcp python-docx
  • 文件依賴:
    • demo_template.docx(樣式模板)
    • 1.docx(輸入文檔)
    • 1.json(結構化數(shù)據(jù))

四、功能演示流程

啟動服務:

python my_server.py

執(zhí)行客戶端測試:

python client_test.py
  • 輸出結果:
    • 生成 cloned_example.docx 文檔
    • 驗證文檔內容與原始模板樣式的一致性

五、應用場景

  • 自動化報告生成:通過 API 動態(tài)填充數(shù)據(jù)到預設模板
  • 文檔結構分析:提取 Word 內容進行 NLP 處理
  • 跨格式轉換:作為其他格式(如 Markdown、HTML)轉換的中間層
  • 樣式統(tǒng)一管理:基于模板批量生成標準化文檔

六、注意事項

  • 文件路徑問題:確保工作目錄包含所需模板文件
  • 異常處理增強建議
# 可擴展的異常處理示例
try:
    # 文件操作代碼
except FileNotFoundError as e:
    return {"error": f"Missing file: {str(e)}"}
except json.JSONDecodeError:
    return {"error": "Invalid JSON input"}
  • 性能優(yōu)化方向
    • 添加緩存機制復用樣式模板
    • 支持異步文件讀寫
    • 實現(xiàn)流式傳輸處理大文件

七、擴展建議

添加文件校驗模塊:

def validate_word_file(path):
    if not os.path.exists(path):
        raise ValueError("Template file not found")
    if not path.endswith('.docx'):
        raise ValueError("Invalid file format")

支持更多格式轉換:

  • 集成 pandoc 實現(xiàn)多格式轉換
  • 添加 PDF 導出功能

API 接口增強:

  • 添加文件上傳下載接口
  • 實現(xiàn)任務隊列異步處理

該實現(xiàn)展示了如何通過 MCP 協(xié)議構建文檔處理服務,開發(fā)者可根據(jù)實際需求擴展更多文檔操作功能。完整項目代碼需注意分離服務端/客戶端模塊,并完善錯誤處理機制。

以上就是Python使用FastMCP實現(xiàn)Word文檔與JSON數(shù)據(jù)互轉的詳細內容,更多關于Python Word與JSON互轉的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解Python之數(shù)據(jù)序列化(json、pickle、shelve)

    詳解Python之數(shù)據(jù)序列化(json、pickle、shelve)

    本篇文章主要介紹了Python之數(shù)據(jù)序列化,本節(jié)要介紹的就是Python內置的幾個用于進行數(shù)據(jù)序列化的模塊,有興趣的可以了解一下。
    2017-03-03
  • Python實現(xiàn)提取給定網(wǎng)頁內的所有鏈接

    Python實現(xiàn)提取給定網(wǎng)頁內的所有鏈接

    這篇文章主要和大家分享一個實用的Python腳本,可以實現(xiàn)從給定的網(wǎng)頁中檢索所有鏈接,并將其保存為txt文件,需要的小伙伴可以收藏一下
    2023-05-05
  • Python中tensorflow的argmax()函數(shù)的使用小結

    Python中tensorflow的argmax()函數(shù)的使用小結

    在TensorFlow中,argmax()函數(shù)是一個非常重要的操作,它用于返回給定張量(Tensor)沿指定軸的最大值的索引,下面就來介紹一下argmax()的使用,感興趣的可以了解一下
    2025-05-05
  • vscode如何選用不同的python的解釋器

    vscode如何選用不同的python的解釋器

    本文詳細介紹了在VSCode中設置Python運行環(huán)境的步驟,包括安裝Python和VSCode插件、配置Python解釋器、設置虛擬環(huán)境、配置調試和運行設置、配置終端環(huán)境以及安裝額外依賴,通過這些步驟,可以有效地管理Python開發(fā)環(huán)境,提升開發(fā)效率,感興趣的朋友一起看看吧
    2025-01-01
  • python的numpy模塊安裝不成功簡單解決方法總結

    python的numpy模塊安裝不成功簡單解決方法總結

    這篇文章主要介紹了python的numpy模塊安裝不成功簡單解決方法總結,分享了四種python模塊導入不成功的解決方法,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • PyTorch兩種安裝方法

    PyTorch兩種安裝方法

    這篇文章主要介紹了PyTorch兩種安裝方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python調用PC攝像頭實現(xiàn)掃描二維碼

    Python調用PC攝像頭實現(xiàn)掃描二維碼

    PC攝像機掃描二維碼的應用場景很廣泛,可以應用于各種需要快速掃描、識別和管理的場景,本文就來具體講講如何用Python實現(xiàn)這一功能吧
    2023-05-05
  • Python腳本實現(xiàn)獲取IP地址

    Python腳本實現(xiàn)獲取IP地址

    這篇文章主要為大家詳細介紹了如何基于Python編寫一個腳本,可以實現(xiàn)獲取主機名、外網(wǎng)IP(通過多個公共API嘗試) IPV4和IPV6以及所有網(wǎng)絡接口的內網(wǎng)IP,感興趣的可以了解下
    2025-03-03
  • Python 利用高德地圖api實現(xiàn)經(jīng)緯度與地址的批量轉換

    Python 利用高德地圖api實現(xiàn)經(jīng)緯度與地址的批量轉換

    這篇文章主要介紹了Python 利用高德地圖api實現(xiàn)經(jīng)緯度與地址的批量轉換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Django 響應數(shù)據(jù)response的返回源碼詳解

    Django 響應數(shù)據(jù)response的返回源碼詳解

    這篇文章主要介紹了Django 響應數(shù)據(jù)response的返回源碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08

最新評論

遵义市| 河北省| 津市市| 清涧县| 青海省| 呼和浩特市| 泰顺县| 五原县| 宝丰县| 信丰县| 棋牌| 板桥市| 报价| 稷山县| 成都市| 正阳县| 阿图什市| 综艺| 张家界市| 平邑县| 军事| 禹州市| 林西县| 宜城市| 泸西县| 高淳县| 黑龙江省| 边坝县| 澳门| 安陆市| 丰镇市| 濮阳县| 常熟市| 杭锦后旗| 泰来县| 北碚区| 略阳县| 崇礼县| 靖边县| 宣威市| 萨迦县|