需求:
在做树形可视化图形时,需要相应的json文件为树形结构。本例为将所有IP进行一个统计,合并同类项,之后根据IP的四个字段分为四层。第一层为第一个字段,第二层为第二个字段,以此类推,总共四层。
数据格式类似下图:
image.png
实现思路:
1.将IP统计后的结果以dataframe的数据结构存储;
2.定义两种节点:
非叶子节点:
node={"name":"","children":[]}
叶子节点:
leaf={"name":"","size":0}
对所有IP进行一次遍历,遍历所有IP的第一个字段,得到不同的第一个字段,并生成一个非叶子节点。加入列表中。
对所有IP进行第二次遍历,遍历第二个字段,生成相应的非叶子节点,并匹配对应的第一个字段,插入到列表中。
对所有IP进行第三次遍历,遍历第三个字段,生成相应的非叶子节点,并分别匹配第一个字段和第二个字段,插入到列表中。
对所有IP进行第四次遍历,遍历第四个字段,生成相应的叶子节点,并分别匹配第一个字段、第二个字段、第三个字段,插入到列表中。
最后做格式的微调,如单引号变为双引号等。
实现代码:
# -*- coding