首页 > 解决方案 > 如何存储 DataFrame 的变量并使用它来发送电子邮件?

问题描述

我想存储一个数据框的值并用它来发送电子邮件:

def config():
    sql_con_obj = SqlConnector()
    sql_con_obj.connect()
    sql_con_obj.con.commit()
    sql = "SELECT * FROM bd_opensgc.Config"
    df = pandas.read_sql_query(sql, sql_con_obj.con)
    df.to_csv("Config.csv", index=False, encoding="utf-8")
    Emails = df['Email']
    sql_con_obj.disconnect()
    del sql_con_obj
    return Emails

df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1 entries, 0 to 0
Data columns (total 1 columns):
 #   Column           Non-Null Count  Dtype
---  ------           --------------  -----
 1   Email            1 non-null      object
dtypes: object(1)

在电子邮件功能中,我得到了 Emails 变量并说

Emails=config()
you = Emails
msg['To'] =you
smtp.sendmail(me,you, msg.as_string())

它给了我这个错误:

'Series' object has no attribute 'encode'

标签: pythonpandasdataframeemail

解决方案


您应该使用.valuesor iloc,否则您将获得始终为类型的整个列Series

例如:

Emails = df['Email'].values[0]

看一下这个:

如何从数据框的单元格中获取值?


推荐阅读