Столбцы таблиц не выравниваются правильно при отправке по электронной почте - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь отформатировать письмо с помощью таблицы, используя библиотеку таблиц.

код, который у меня есть, выглядит следующим образом

with open('path_to_csv') as file:
            data = pd.read_csv(file)
            data = data.applymap(str)
            print(data.dtypes) 

print dtypes приводит к ...

vessel_name    object
mmsi           object
imo            object
left_after     object
left_before    object 

, что ожидается после .applymap(str). Затем

text = text.format(name=j, table=tabulate(data, stralign=("left",
                                                          "left",
                                                          "left",
                                                          "left", 
                                                          "left"), headers=["Vessel name",
                                                                              "MMSI",
                                                                              "IMO",
                                                                              "Left after (UTC)",
                                                                              "Left before (UTC)"], 
                                               showindex=False, tablefmt="rst"))

html = html.format(name=j, table=tabulate(data, stralign=("left",
                                                          "left",
                                                          "left",
                                                          "left", 
                                                          "left"), headers=["Vessel name",
                                                                              "MMSI",
                                                                              "IMO",
                                                                              "Left after (UTC)",
                                                                              "Left before (UTC)"], 
                                               showindex=False, tablefmt="html"))

и затем отправьте электронное письмо, используя smtplib sendmail

        message = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
        message["Subject"] = "xx"
        message["From"] = sender['Parameter']['Value']
        message["To"] = receiver

        context = ssl.create_default_context()
        recipients = receiver.split(',') + bcc.split(',')
        with smtplib.SMTP_SSL("smtp.gmail.com", port, context=context) as server:
            server.login(sender['Parameter']['Value'], password['Parameter']['Value'])
            server.sendmail(
                    sender['Parameter']['Value'],
                    recipients,
                    message.as_string()

. Таблица в письме отформатирована таким образом: enter image description here

, при этом некоторые столбцы «центрированы», а некоторые «выровнены по левому краю». Я пробовал numalign и colalign тоже, и они дают тот же эффект. Единственный последовательный результат - colallign='center', но это не то, чего я хочу. Есть идеи?

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