How would I convert below dictionary into html table
{'Retry': ['30', '12', '12'] 'Station MAC': ['aabbccddeea', 'ffgghhiijj', 'kkllmmnnoo'] Download': ['70.', '99', '90'] }
Html table format I am trying to achieve is
Retry MAC Download
30 aabbccddee 70
12 ffgghhiijj 99
12 kkllmmnnoo 90
I have written css for table with border and everything, but data is not getting filled correctly. I am trying this with web2py. But Finding difficult to write logic to print above dictionary in table format.
Thanks !
You can make it a little easier by using the web2py TABLE
and TR
helpers:
In the controller:
def myfunc():
d = {'Retry': ['30', '12', '12'],
'Station MAC': ['aabbccddeea', 'ffgghhiijj', 'kkllmmnnoo'],
'Download': ['70.', '99', '90']}
colnames = ['Retry', 'Station MAC', 'Download']
rows = zip(*[d[c] for c in colnames])
return dict(rows=rows, colnames=colnames)
And in the view:
{{=TABLE(THEAD(TR([TH(c) for c in colnames])),
[TR(row) for row in rows]))}}
Using a dict won't maintain the order of your columns but if you are ok with that then this example will work
data = {'Retry': ['30', '12', '12'],
'Station MAC': ['aabbccddeea', 'ffgghhiijj', 'kkllmmnnoo'],
'Download': ['70.', '99', '90']}
html = '<table><tr><th>' + '</th><th>'.join(data.keys()) + '</th></tr>'
for row in zip(*data.values()):
html += '<tr><td>' + '</td><td>'.join(row) + '</td></tr>'
html += '</table>'
print html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With