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

从数据库DataFrame传递数据到HTML字符串遇报错求解决方案

解决将DataFrame数据填充到HTML字符串占位符的问题

首先咱们来定位你遇到的错误:你代码里的df1 = df['Names']是一个Pandas Series对象,当你用for i, r in df1.items()遍历它时,r其实就是单个的字符串(也就是每一行的名字值),而字符串根本没有to_dict()方法,这就是报错的原因啦。

根据你的需求,我给你两种常见场景的解决方案:

场景1:为每个名字生成独立的<h1>标签

如果你想让每个名字都对应一个<h1>,可以先批量生成所有h1标签,再拼接到HTML模板里:

import pandas as pd
import psycopg2
from sqlalchemy import create_engine

# 确保你的engine已经正确初始化
df = pd.read_sql('select * from "HUMANS".people_info Limit 100', con=engine )

# 定义基础HTML模板,预留h1内容的占位符
base_html = """
<!doctype html>
<html lang="en">
<body>
<div class="col-md-12 text-center">
{}
</div>
</body>
</html>
"""

# 循环生成每个名字对应的h1标签
h1_list = []
for name in df['Names']:
    h1_list.append(f'<h1>{name}</h1>')

# 把所有h1标签拼接成一个字符串
h1_content = '\n'.join(h1_list)

# 填充到基础模板中得到最终HTML
final_html = base_html.format(h1_content)

场景2:把所有名字放在同一个<h1>标签内

如果希望所有名字在同一个h1里展示(比如用逗号分隔),直接拼接名字字符串即可:

import pandas as pd
import psycopg2
from sqlalchemy import create_engine

df = pd.read_sql('select * from "HUMANS".people_info Limit 100', con=engine )

test = """
<!doctype html>
<html lang="en">
<body>
<div class="col-md-12 text-center">
<h1>{}</h1>
</div>
</body>
</html>
"""

# 将所有名字拼接成一个字符串,用逗号分隔
names_combined = ', '.join(df['Names'].tolist())

# 填充占位符
final_html = test.format(names_combined)

另外补充一点:如果之后你需要处理整行数据(比如同时填充名字、年龄多个字段),那才需要用到to_dict(),但当前场景只需要单个列的字符串值,直接使用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:54:26