добавить дополнительное значение при условии в таблицу
формирую html таблицу из питона
in_dict= {'1.7': [85], '2.7': [37, 25], '6.7': [150]}
tbl_fmt = '''
<table>
<tr>
{}
</tr>
<tr>
{}
</tr>
</table>'''
row_fmt = '''
<td>{}</td>
'''
def dict_to_html_table(in_dict):
return tbl_fmt.format(''.join([row_fmt.format(k) for k,v in in_dict.items()]),''.join([row_fmt.format(sum(v)) for k,v in in_dict.items()]))
таблица формируется и получаю то что мне нужно. Интересует как в тег <td> еще вписать что-то вроде class='bad' если значение sum(v)<100.
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Накидал пример с генератором шаблонов jinja2:
# pip install jinja2
import jinja2
template = jinja2.Template("""\
<table>
<tr>
{% for x in rows_1 %}
<td>{{ x }}</td>
{% endfor %}
</tr>
<tr>
{% for x in rows_2 %}
<td {% if x < 100 %}class="bad"{% endif %}>{{ x }}</td>
{% endfor %}
</tr>
</table>
""")
in_dict = {
'a': [1, 2, 3],
'b': [3, 4, 5],
'c': [99, 3],
}
html = template.render(
rows_1=[k for k, v in in_dict.items()],
rows_2=[sum(v) for k, v in in_dict.items()]
)
print(html)
Результат:
<table>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td class="bad">6</td>
<td class="bad">12</td>
<td >102</td>
</tr>
</table>