Конвертируйте pandas DataFrame в HTML, а затем показывайте по электронной почте - PullRequest
0 голосов
/ 18 июня 2019

У меня есть скрипт, который дает мне таблицу в DataFrame.Затем я конвертирую его в HTML и отправляю по электронной почте.

import pandas as pd
import datetime as dt
import smtplib
from IPython.display import HTML

def sendEmail():
    sender = 'DanielScript@domain.com'
    receivers = ['daniel@domain.com']
    message = """From: Daniel's Script <DanielScript@domain.com>
    To: Anyone who forgot
    Subject: New Employees Reminder

    Hi, here is a list of the people who will start working here soon: \n**{}** \n\nYou're welcome\nDaniel Beiin
    """.format(df)
    try:
        smtpObj = smtplib.SMTP('smtpserver')
        smtpObj.sendmail(sender , receivers, message)         
        print("Successfully sent email")
    except SMTPException:
        print ("Error: unable to send email")

df = pd.read_csv(r'testcsv.csv')
df = HTML(df.to_html())

sendEmail()

Проблема в том, что я получаю **<IPython.core.display.HTML object>** в самом письме.Я не уверен, как это представить.Я не хочу прикреплять файл к электронному письму, я хочу, чтобы таблица отображалась в формате HTML, когда кто-то открывает электронное письмо.

Я не уверен, как это сделать.

Спасибо:)

1 Ответ

0 голосов
/ 18 июня 2019

Привет, Даниэль,
Просто попробуйте эту модификацию в своем коде.

    import pandas as pd
    import datetime as dt
    import smtplib
    import codecs
    from IPython.display import HTML

    def sendEmail():
    sender = 'DanielScript@domain.com'
    receivers = ['daniel@domain.com']
    message = """From: Daniel's Script <DanielScript@domain.com>
    To: Anyone who forgot
    Subject: New Employees Reminder

    Hi, here is a list of the people who will start working here soon: \n**{}** 
    \n\nYou're welcome\nDaniel Beiin
    """.format(df)
    try:
         smtpObj = smtplib.SMTP('smtpserver')
         smtpObj.sendmail(sender , receivers, message)         
         print("Successfully sent email")
    except SMTPException:
         print ("Error: unable to send email")

    df = pd.read_csv(r'testcsv.csv')
    df.to_html('filename.html')
    f = codecs.open("filename.html",'r')
    df = HTML(f.read()) 

    sendEmail()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...