You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将大量Tuple列表格式的SQLResult转为易读自然语言输出

Python实现SQL查询结果转自然语言有序列表方案

核心思路

根据查询需求的描述,结合结果元组对应的字段名称,遍历查询结果动态生成结构化的有序列表,让输出更符合自然语言阅读习惯。

基础实现代码

def sql_result_to_natural_language(query_desc, field_names, sql_result):
    # 生成开头说明文本
    result_content = f"{query_desc}如下:\n\n"
    # 遍历结果生成有序列表项
    for index, record in enumerate(sql_result, start=1):
        # 拼接每个字段的描述与值
        record_text = "、".join([f"{field_names[i]}:{val}" for i, val in enumerate(record)])
        result_content += f"{index}. {record_text}\n"
    return result_content

# 示例调用
query_requirement = "提供门店列表及总销售额"
field_labels = ["门店名称", "总销售额"]
sql_result = [('Adyar', 36283), ('Agra', 31892), ('Delhi', 42500)]

# 生成并打印结果
output_text = sql_result_to_natural_language(query_requirement, field_labels, sql_result)
print(output_text)

示例输出

提供门店列表及总销售额如下:

  1. 门店名称:Adyar、总销售额:36283
  2. 门店名称:Agra、总销售额:31892
  3. 门店名称:Delhi、总销售额:42500

扩展优化:格式化特殊字段

如果结果中包含金额、日期等需要特殊格式化的字段,可以在函数中增加针对性处理,让输出更直观:

def sql_result_to_natural_language(query_desc, field_names, sql_result, currency_indices=None):
    currency_indices = currency_indices or []
    result_content = f"{query_desc}如下:\n\n"
    for index, record in enumerate(sql_result, start=1):
        record_parts = []
        for i, val in enumerate(record):
            # 对指定索引的字段做金额格式化
            if i in currency_indices:
                record_parts.append(f"{field_names[i]}:¥{val:,}")
            else:
                record_parts.append(f"{field_names[i]}:{val}")
        record_text = "、".join(record_parts)
        result_content += f"{index}. {record_text}\n"
    return result_content

# 调用示例(格式化第二个字段为金额)
output_text = sql_result_to_natural_language(query_requirement, field_labels, sql_result, currency_indices=[1])
print(output_text)

优化后输出

提供门店列表及总销售额如下:

  1. 门店名称:Adyar、总销售额:¥36,283
  2. 门店名称:Agra、总销售额:¥31,892
  3. 门店名称:Delhi、总销售额:¥42,500

内容的提问来源于stack exchange,提问作者Brijesh Savaliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:34