Python сортировка HTML-таблицы - PullRequest
0 голосов
/ 14 ноября 2018

Я перебираю список серверов и подключаюсь к OpenSSL, чтобы получить сертификат SSL, и собираю имя сервера, дату истечения срока действия сертификата и вычисляю количество дней до истечения срока действия сертификата.Затем я строю HTML-таблицу с данными.Столбцы: Хост, Имя хоста, Срок действия и Оставшиеся дни.Каков наилучший способ сортировки таблицы по столбцу «Оставшиеся дни»?

# Update the hosts entry
    ssl_results[str(ip)][0] = host
    ssl_results[str(ip)][1] = server_name
    ssl_results[str(ip)][2] = exp_date
    ssl_results[str(ip)][3] = days_to_expire

    # Loop through the ssl_results entries and generate a email + results file
    try:

        # variable to hold html for email
        SSLCertificates = """<html>
                            <head>
                              <style>
                                    table{width: 1024px;}

                                    table, th, td {
                                        border: 1px solid black;
                                        border-collapse: collapse;
                                    }

                                    th, td {
                                        padding: 5px;
                                        text-align: left;
                                    }

                                    ul:before{
                                      content:attr(data-header);
                                      font-size:120%;
                                      font-weight:bold;
                                      margin-left:-15px;
                                    }
                                </style>
                              </head>
                            <body>
                              <p><h2>Blah, </h2>
                              <h3>SSL Expiration Summary:</h3>
                              <span style="color:red;"><b>Blah Blah Blah.<b></span><br><br>
                              <table id=\"exp_ssls\"><tr><th>Host</th><th>Hostname</th><th>Expiration Date</th><th>Remaining Days</th></tr>
                          """

        for entries in ssl_results:
            SSLCertificates += "<tr><td>" + str(entries) + "</td><td>" + str(ssl_results[entries][1]) + "</td><td>" + str(
                ssl_results[entries][2]) + "</td><td>" + str(ssl_results[entries][3]) + "</td></tr>"

        SSLCertificates += """</body>
                    </html>"""

        f = open('SSLCertificates.html', 'w')
        f.write(SSLCertificates)
        f.close()
        filename = 'SSLCertificates.html'
        attachment = open(filename, 'rb')

1 Ответ

0 голосов
/ 15 ноября 2018

Сортировка текста перед формированием тегов HTML.затем выполните итерацию по тексту и распечатайте его, используя HTML-теги.Используйте sorted (), чтобы отсортировать ваш диктант перед тем, как выполнить его итерацию.

import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))

sorted_x будет списком кортежей, отсортированным по второму элементу в каждом кортеже.dict (sorted_x) == x.

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