python HTML muestra datos de tabla (celdas combinadas)
Copie el código y guárdelo localmente, luego ejecútelo y abra el enlace de demostración para ver el efecto#! /usr/bin/env?python3
from?collections?import?OrderedDict
from?os.path?import?dirname,?abspath,?join?[(1,2) ), (1, 2), (1, 3), (2, 4), (2, 5)]
column_names?=?('Nombres de columnas', ?' Datos') p> p>
edicto?=?OrderedDict()
para?k,?v?in?L:
si?k?not?in?edicto:
edicto[k]? =?[v]
else:
edicto[k].append(v)
sa? p>
lt;!DOCTYPE?HTMLgt;
lt;meta?charset="UTF-8"gt;
lt;htmlgt;
lt;bodygt;
lt;table?border="1"?cellpadding="10"gt;
lt;trgt;
lt; cosa; {}lt;/thgt;
lt;thgt;{}lt;/thgt;
lt;/trgt;
'''. formato( *nombres_columnas)
sc?=?
lt;/tablegt;
lt;/bodygt;
lt;/htmlgt;
'''
sb?=?[]
tdform?=?'' lt;td?align="center"gt;{}lt;/tdgt;'.format? >for?k,?v?in?odict.items():
if?len(v)?==?1:
sb.append('lt;trgt ;')
sb.append(tdform(k))
sb.append(tdform(v))
sb.append('lt;/ trgt;')
else:
para?i,?subv?in?enumerate(v):
sb.append('lt;trgt; ')
if?i?==?0:
sb.append('lt;td?rowspan="{}"?align = "center"gt;{} lt;/tdgt;'.format(
len(v),?k))
sb.append(tdform(subv))
sb. append('lt;/trgt;')
fn?=?'table.html'
ss?=?sa?\n'.join(sb)? sc
prueba:
from?bs4?import?BeautifulSoup
soup?=?BeautifulSoup(ss)
ss?=? sopa.prettify()
excepto:
pasar
con?open(fn,?' w')?as?f:
f.write(ss)
print(ss)
print('Demo:?file://' joinpath(abspath(dirname(__file__)),?fn) )