Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python字典生成HTML表_Python_Html_Linux_Web_Web2py - Fatal编程技术网

从Python字典生成HTML表

从Python字典生成HTML表,python,html,linux,web,web2py,Python,Html,Linux,Web,Web2py,如何将下面的字典转换为html表格 {'Retry': ['30', '12', '12'] 'Station MAC': ['aabbccddeea', 'ffgghhiijj', 'kkllmmnnoo'] Download': ['70.', '99', '90'] } 我试图实现的Html表格格式是 Retry MAC Download 30 aabbccddee 70 12 ffgghhiijj

如何将下面的字典转换为html表格

  {'Retry': ['30', '12', '12'] 'Station MAC': ['aabbccddeea', 'ffgghhiijj', 'kkllmmnnoo'] Download': ['70.', '99', '90'] }
我试图实现的Html表格格式是

Retry       MAC         Download
  30      aabbccddee        70
  12      ffgghhiijj        99
  12      kkllmmnnoo        90
我已经为带有边框的表和所有内容编写了css,但数据填充不正确。我正在用web2py尝试这个。但发现难以编写逻辑以表格格式打印上述词典

谢谢

类似于

d =  {'Retry': ['30', '12', '12'], 'Station MAC': ['aabbccddeea', 'ffgghhiijj', 'kkllmmnnoo'], 'Download': ['70.', '99', '90']}

keys = d.keys()
length = len(d[keys[0]])

items = ['<table style="width:300px">', '<tr>']
for k in keys:
    items.append('<td>%s</td>' % k)
items.append('</tr>')

for i in range(length):
    items.append('<tr>')
    for k in keys:
        items.append('<td>%s</td>' % d[k][i])
    items.append('</tr>')

items.append('</table>')

print '\n'.join(items)
d={'Retry':['30','12','12','Station MAC':['aabbccddeea','ffgghhiijj','kklmmnnoo','Download':['70','99','90']}
keys=d.keys()
长度=长度(d[键[0]])
项目=['',]
对于k in键:
items.append(“%s”%k)
项目。附加(“”)
对于范围内的i(长度):
项目。附加(“”)
对于k in键:
items.append(“%s”%d[k][i])
项目。附加(“”)
项目。附加(“”)
打印“\n”。加入(项目)

使用dict无法保持列的顺序,但如果您对此没有异议,则此示例将起作用

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
data={'Retry':['30','12','12'],
‘电台MAC’:[‘aabbccddeea’、‘ffgghhiijj’、‘kklmmnnoo’],
'下载':['70'、'99'、'90']}
html=''+'.join(data.keys())+''
对于zip中的行(*data.values()):
html+=''+''。加入(行)+''
html+=''
打印html

您可以通过使用web2py
表和
TR
帮助程序使其变得更简单:

在控制器中:

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)
并且认为:

{{=TABLE(THEAD(TR([TH(c) for c in colnames])),
         [TR(row) for row in rows]))}}

对这个问题进行了比较彻底的调查。到目前为止,我找到的最好的解决方案是谷歌提供的软件包。我会举一个例子,但是链接中的内容是全面的

这实际上是在元素之后创建一个额外的行。谢谢!这太棒了!但唯一的问题是,太糟糕了,web2py不适用于python 3。我不知道你为什么要在这里发表评论,但python 3的支持很快就会到来。或者使用data=OrderedDict()来保持秩序