LLM 生成 → 输出 Markdown 文本

1.用 Python Pandas 转换(最常用)

复制代码
import pandas as pd
import io

markdown_table = """| 序号 | 评审因素 | 评审标准 | 分值 |
| :--- | :--- | :--- | :--- |
| 1 | 价格分 | 采用低价优先法计算... | 30 |
| 2 | 技术方案 | 方案需包含详细实施计划,优得10分... | 40 |
| 3 | 商务条款 | 满足招标文件要求的得满分... | 30 |"""

# 转换为 DataFrame
df = pd.read_csv(io.StringIO(markdown_table), sep='|', skiprows=[1]).dropna(axis=1, how='all')

# 清理列名空格
df.columns = df.columns.str.strip()

print(df)

输出效果:

复制代码
   序号  评审因素                  评审标准  分值
0    1   价格分    采用低价优先法计算...  30
1    2  技术方案  方案需包含详细实施计划...  40
2    3  商务条款  满足招标文件要求的得满分  30

2.转换为 Excel 文件

复制代码
# 接上面的 df
df.to_excel('评分标准.xlsx', index=False, sheet_name='评分表')
print("Excel 文件已生成:评分标准.xlsx")

3.转换为 HTML(用于网页展示)

复制代码
html_table = df.to_html(index=False, classes='table table-striped')
print(html_table)

生成的 HTML 可直接用于 Web 页面渲染。

4.转换为可视化表格(用 tabulate 库)

复制代码
from tabulate import tabulate

# 从 DataFrame 转换
print(tabulate(df, headers='keys', tablefmt='grid', showindex=False))

输出效果:

复制代码
+--------+------------+--------------------------------+--------+
| 序号   | 评审因素   | 评审标准                      | 分值   |
+--------+------------+--------------------------------+--------+
| 1      | 价格分     | 采用低价优先法计算...          | 30     |
| 2      | 技术方案   | 方案需包含详细实施计划...      | 40     |
| 3      | 商务条款   | 满足招标文件要求的得满分      | 30     |
+--------+------------+--------------------------------+--------+

5.直接在 Markdown 编辑器中渲染

你提供的文本本身就是 Markdown 格式,在以下工具中会自动渲染成表格:

  • Typora(实时预览)
  • Notion
  • Obsidian
  • GitHub README
  • ChatGPT / Claude 对话界面

只需要确保格式正确(列对齐行 |---| 存在),就会自动显示为表格。

6.一键转换工具

如果不想写代码,可以使用在线工具:

只需粘贴你的 Markdown 文本,即可下载为 Excel/CSV/HTML 格式。

推荐流程:

  1. LLM 生成 → 输出 Markdown 文本
  2. Pandas 解析 → 转为 DataFrame(便于计算总分=100校验)
  3. 后端处理 → 转为 HTML/JSON 返回前端
  4. 前端展示 → 用表格组件渲染(支持编辑)

这样既利用了 LLM 的生成能力,又保证了数据的结构化和可操作性。

7.将包含 Markdown 表格的字符串解析为 Pandas DataFrame 并显示

复制代码
import pandas as pd
import io
import re

# 模拟 LLM 输出(可能包含前后文字)
llm_output = """
根据您的需求,生成的评分标准如下:

| 序号 | 评审因素 | 评审标准 | 分值 |
| :--- | :--- | :--- | :--- |
| 1 | 价格分 | 满足招标文件要求且价格最低的为基准价... | 30 |
| 2 | 技术分 | 方案详实得满分 | 70 |

请知悉。
"""

# 1. 使用正则提取表格部分
# 匹配以 | 开头的行,且包含多行(包括表头和分隔线)
table_pattern = r'((?:\|.*?\|\n?)+)'
match = re.findall(table_pattern, llm_output)

if match:
    # 取第一个匹配到的表格
    table_str = match[0]
    
    # 2. 使用 Pandas 读取
    # sep='|' 表示按竖线分隔
    # skiprows=[1] 跳过分隔线那一行 (| :--- | :--- |...)
    # .dropna(axis=1, how='all') 去掉首尾因分割产生的空列
    df = pd.read_csv(io.StringIO(table_str), sep='|', skiprows=[1]).dropna(axis=1, how='all')
    
    # 3. 清理列名(去除前后空格)
    df.columns = df.columns.str.strip()
    
    # 4. 显示结果
    print("解析成功的表格:")
    print(df)
    print("\n数据类型:")
    print(df.dtypes)
else:
    print("未在文本中找到 Markdown 表格")

运行结果

复制代码
解析成功的表格:
   序号  评审因素                           评审标准  分值
0    1   价格分  满足招标文件要求且价格最低的为基准价...  30
1    2   技术分                     方案详实得满分  70

数据类型:
序号      int64
评审因素   object
评审标准   object
分值      int64
dtype: object

进阶处理:确保数据类型正确

如果分值列中有非数字字符(如"30分"),可以使用以下代码清洗:

复制代码
# 假设分值列里有"30分"这样的数据
# 使用 .str.extract 提取数字部分
df['分值'] = df['分值'].astype(str).str.extract(r'(\d+)').astype(float)

print("\n清洗后的表格:")
print(df)

代码解析

  1. re.findall: 从杂乱的文本中精准提取表格部分,避免前后文字干扰。
  2. pd.read_csv(..., sep='|') : Pandas 天然支持以 | 为分隔符读取表格。
  3. skiprows=[1] : 跳过 Markdown 的分隔行 (| :--- |),这是关键步骤。
  4. .dropna(axis=1, how='all') : 去除首尾可能产生的空列(因为开头和结尾的 | 会导致分割出空值)。
  5. .str.strip(): 清理列名中的空格,确保后续引用列名时不出错。

这样你就得到了一个结构化的 Pandas DataFrame,可以进行后续的:

  • 存入数据库
  • 转为 Excel
  • 数据校验(如总分=100)
  • 转为 JSON 返回前端
相关推荐
逸尘谈PM12 小时前
智能体框架对比:OpenClaw、LangChain、AutoGPT、CrewAI 深度对比
人工智能·ai·langchain·职场·2026年
前进的李工14 小时前
LangChain使用之Model IO(提示词模版之ChatPromptTemplate)
java·前端·人工智能·python·langchain·大模型
张张123y16 小时前
知识图谱从0到1:AI应用开发的核心技术
人工智能·langchain·transformer·知识图谱
勇往直前plus18 小时前
大模型开发手记(九):LangChain Agent 中间件-提升Agent的可靠性与可控性
中间件·langchain
java1234_小锋18 小时前
基于LangChain的RAG与Agent智能体开发 - 使用LangChain调用大模型设置流式输出
langchain·rag
诗酒当趁年华18 小时前
langchain核心组件5-短期记忆
langchain
啊巴矲18 小时前
白从零开始勇闯人工智能:LangChain中的检索增强生成(RAG)
langchain
张张123y19 小时前
AI Agent Memory:从理论到实战,掌握长短期记忆的核心技术【2】
人工智能·python·langchain·transformer
小付爱coding19 小时前
跟着官网学LangChain【第02章:提示词和消息】
windows·python·langchain
chaors1 天前
从零学RAG0x0d:AdvancedRAG检索后优化
langchain·llm·ai编程