Files

25 lines
853 B
Python
Raw Permalink Normal View History

2026-09-13 16:19:24 +08:00
"""NL2SQL 查询结果的基础 Markdown 渲染。"""
from __future__ import annotations
from typing import Any
def _cell(value: Any) -> str:
"""将单元格转换为不会破坏 Markdown 表格的文本。"""
if value is None:
return ""
return str(value).replace("|", "\\|").replace("\r", " ").replace("\n", " ")
def render_markdown(columns: list[str], rows: list[dict[str, Any]]) -> str:
"""将列和行渲染成 Markdown 表格,空结果返回固定提示。"""
if not rows:
return "暂无数据。"
header = "| " + " | ".join(_cell(column) for column in columns) + " |"
divider = "| " + " | ".join("---" for _ in columns) + " |"
body = [
"| " + " | ".join(_cell(row.get(column)) for column in columns) + " |"
for row in rows
]
return "\n".join([header, divider, *body])