我正在寻找一些指导,以HTML表格的形式创建简单的仪表板
我有一个包含以下项目的文件夹
因此,我需要一个相同的代码,该代码从文件夹中读取可用主机数量的主机文件,然后基于该文件读取其相应的json文件,并在如下所示的仪表板示例中链接相应的html
**Server Hostname Report**
192.x.x.10 abc R1.html
192.x.x.11 aba R2.html
192.x.x.12 abb R3.html
192.x.x.13 aaa R4.html
192.x.x.14 cba R5.html
192.x.x.15 bba R6.html
https://github.com/etiennestuder/gradle-jooq-plugin
从json文件读取主机名
答案 0 :(得分:1)
我将使用python脚本执行此操作。
首先,读取主机文件,并将所有主机收集到词典中(说出结果。其中的键将是IP地址,值将使用主机名和HTML文件名设置。)。然后,使用下面的 get_all_files 函数,我将收集所有JSON文件,并通过迭代这些文件从JSON文件读取主机名并将其放入对应的主机密钥的结果字典中进行迭代。与此类似,您可以浏览HTML文件并将其放入结果字典中。 (有关HTML文件的更多信息会有所帮助。)
import glob
def get_all_files(dir_path, extension):
return glob(os.path.join(dir_path, '*.{}'.format(extension)))
一旦有了结果字典,就可以遍历该字典并创建HTML文件,并相应地添加HTML文本。
希望这会有所帮助,
KP
答案 1 :(得分:0)
将问题分解为更小的步骤。您基本上已经在问题描述中做到了这一点,但是在这里它被更明确地分开了。
写一个函数来读取主机文件。理想情况下,使其具有灵活性,以便它以文件路径作为参数,以便以后可以移动主机文件或在以后阶段将主机文件指向其他主机文件(如果需要)。明智的返回值是IP地址列表:["192.x.x.10", ..., "192.x.x.15"]
现在我们有了IP地址列表,我们可以创建一个函数来处理单个IP地址并读取相关的JSON。我们称其为for循环以处理所有主机,无论有多少主机。鉴于我们稍后将填充一个表,一个有用的返回值将是表示一个单元格内容的元组。这使我们可以在单个列表理解中处理所有url,例如:table_row_tuples = [myFunction(url) for url in host_urls]
,其中host_urls
是上一个项目符号的功能。 table_row_tuples
将成为类似于[("192.x.x.10", "abc", "/myReportsFolder/R1.html", "R1.html"), ..., ("192.x.x.15", "bba", "/myReportsFolder/R6.html", "R6.html")]
最后,编写一个绘制HTML表的函数。它应该以元组列表作为参数,绘制表头,使用for循环将每个元组写入一行,最后结束表。
通过考虑如何将问题分解为更小的步骤,以及哪些数据结构可以方便地从一个步骤传递到下一个步骤,您的问题变得更加简单。
编辑:我的答案假设是在Python脚本中这样做的。但是,将问题逐步分解并考虑方便的数据结构的基本概念适用于任何语言。