tryhi 发表于 2020-12-26 00:32:17

将一个二维列表转换为一个html页面

本帖最后由 tryhi 于 2020-12-26 01:32 编辑

https://i.loli.net/2020/12/26/3QmVzARWDgLGKex.jpg
import os
data=[['a','b','c','d'],
['1','2','3','4'],
['5','6','7','8'],
['9','10','11','12']]

#将一个二维表格转换成网页表格
def tab_html(lst):
    html_tab = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>网页表格</title></head><body><table border="1" cellpadding="10"><tbody>'
    for i in lst:
      html_tab = html_tab + '<tr>'
      for j in i:
            html_tab = html_tab + '<td>' + j + '</td>'
      html_tab = html_tab + '</tr>'

    html_tab = html_tab + '</tbody></table></body></html>'
    return html_tab

html = tab_html(data)
with open('aa.html', mode="w",encoding='utf-8') as msg:
    msg.write(html)# 在账单日前一天写入文件
os.system('aa.html')


写了这样一函数用来转换,但是发现不够用了,现在我又想增加一些字体颜色,还有一些表格内的文字想要增加连接进去,感觉不好使,又得重构,有没有什么现成的函数?

刚搜到一个pyecharts模块似乎可以满足需求,不知道有没有使用方法,打个比方,我想将这样一个列表,转换为带字体颜色、背景色以及带连接的html表格,要怎么写呢?

data=[
    [['a','0x0000FF','0x00FF00','http://www.baidu.com'],['b','0x0000FF','0x00FF00','http://www.baidu.com'],['c','0x0000FF','0x00FF00','http://www.baidu.com'],['d','0x0000FF','0x00FF00','http://www.baidu.com']],
    [['1','0x0000FF','0x00FF00','http://www.baidu.com'],['2','0x0000FF','0x00FF00','http://www.baidu.com'],['3','0x0000FF','0x00FF00','http://www.baidu.com'],['4','0x0000FF','0x00FF00','http://www.baidu.com']],
    [['5','0x0000FF','0x00FF00','http://www.baidu.com'],['6','0x0000FF','0x00FF00','http://www.baidu.com'],['7','0x0000FF','0x00FF00','http://www.baidu.com'],['8','0x0000FF','0x00FF00','http://www.baidu.com']],
    [['9','0x0000FF','0x00FF00','http://www.baidu.com'],['10','0x0000FF','0x00FF00','http://www.baidu.com'],['11','0x0000FF','0x00FF00','http://www.baidu.com'],['12','0x0000FF','0x00FF00','http://www.baidu.com']],]



突然发现好像不用这么麻烦,反正格式都是字符串,直接传对应的html格式进去就行了

suchocolate 发表于 2021-1-2 10:10:16

前端的东西最后由前端生成,
非要用python,那就用flask这种web构架,里面都自带了模板,传输参数就自动生成了。
如果不用模板,就只能手动。
我看你的列表里颜色和背景都是固定的,整体套用即可:
import requests
from lxml import etree


def main():
    data = [
      [['a', '0x0000FF', '0x00FF00', 'http://www.baidu.com'], ['b', '0x0000FF', '0x00FF00', 'http://www.baidu.com'],
         ['c', '0x0000FF', '0x00FF00', 'http://www.baidu.com'], ['d', '0x0000FF', '0x00FF00', 'http://www.baidu.com']],
      [['1', '0x0000FF', '0x00FF00', 'http://www.baidu.com'], ['2', '0x0000FF', '0x00FF00', 'http://www.baidu.com'],
         ['3', '0x0000FF', '0x00FF00', 'http://www.baidu.com'], ['4', '0x0000FF', '0x00FF00', 'http://www.baidu.com']],
      [['5', '0x0000FF', '0x00FF00', 'http://www.baidu.com'], ['6', '0x0000FF', '0x00FF00', 'http://www.baidu.com'],
         ['7', '0x0000FF', '0x00FF00', 'http://www.baidu.com'], ['8', '0x0000FF', '0x00FF00', 'http://www.baidu.com']],
      [['9', '0x0000FF', '0x00FF00', 'http://www.baidu.com'], ['10', '0x0000FF', '0x00FF00', 'http://www.baidu.com'],
         ['11', '0x0000FF', '0x00FF00', 'http://www.baidu.com'],
         ['12', '0x0000FF', '0x00FF00', 'http://www.baidu.com']]]
    print('<table style="color:#0000FF;background-color:#00FF00;">')
    for row_item in data:
      print('<tr>')
      for d_item in row_item:
            print(f'<td>')
            print(f'    {d_item}')
            print('</td>')
      print('</tr>')
    print('</table>')


if __name__ == '__main__':
    main()
页: [1]
查看完整版本: 将一个二维列表转换为一个html页面