1.数据库设计


2.python获取设备分组树结构

DATA = [{'group_id': 1, 'group_name': '桂妃山', 'parent_group_id': None, 'description': None, 'order_num': 1,"group_level": 1},{'group_id': 2, 'group_name': '1栋1层', 'parent_group_id': 1, 'description': None, 'order_num': 1,"group_level": 2},{'group_id': 3, 'group_name': '1栋2层', 'parent_group_id': 1, 'description': None, 'order_num': 2,"group_level": 2},{'group_id': 4, 'group_name': '1栋3层', 'parent_group_id': 1, 'description': None, 'order_num': 3,"group_level": 2},{'group_id': 5, 'group_name': '1栋4层', 'parent_group_id': 1, 'description': None, 'order_num': 4,"group_level": 2},{'group_id': 6, 'group_name': '1线', 'parent_group_id': 2, 'description': None, 'order_num': 1,"group_level": 3},{'group_id': 7, 'group_name': '2线', 'parent_group_id': 2, 'description': None, 'order_num': 2,"group_level": 3},{'group_id': 8, 'group_name': '3线', 'parent_group_id': 2, 'description': None, 'order_num': 3,"group_level": 3},{'group_id': 9, 'group_name': '4线', 'parent_group_id': 2, 'description': None, 'order_num': 4,"group_level": 3},{'group_id': 10, 'group_name': '1线', 'parent_group_id': 3, 'description': None, 'order_num': 1,"group_level": 3},{'group_id': 11, 'group_name': '2线', 'parent_group_id': 3, 'description': None, 'order_num': 2,"group_level": 3},{'group_id': 13, 'group_name': '4线', 'parent_group_id': 3, 'description': None, 'order_num': 4,"group_level": 3},{'group_id': 12, 'group_name': '3线', 'parent_group_id': 3, 'description': None, 'order_num': 3,"group_level": 3},{'group_id': 14, 'group_name': '1线', 'parent_group_id': 4, 'description': None, 'order_num': 1,"group_level": 3},{'group_id': 15, 'group_name': '2线', 'parent_group_id': 4, 'description': None, 'order_num': 2,"group_level": 3},{'group_id': 17, 'group_name': '饲喂器2', 'parent_group_id': 6, 'description': None, 'order_num': 2,"group_level": 4},{'group_id': 16, 'group_name': '饲喂器1', 'parent_group_id': 6, 'description': None, 'order_num': 1,"group_level": 4},{'group_id': 18, 'group_name': '查情宝1', 'parent_group_id': 7, 'description': None, 'order_num': 1,"group_level": 4},{'group_id': 19, 'group_name': '查情宝2', 'parent_group_id': 7, 'description': None, 'order_num': 2,"group_level": 4},{'group_id': 20, 'group_name': '多奶宝1', 'parent_group_id': 8, 'description': None, 'order_num': 1,"group_level": 4},{'group_id': 21, 'group_name': '多奶宝2', 'parent_group_id': 8, 'description': None, 'order_num': 2,"group_level": 4}]
def constructDeptTrees(parent_group_id=None):'''通过递归实现根据父ID查找子部门1.根据父ID获取该部门下的子部门2.遍历子部门,继续向下获取,直到最小部门3.如果没有遍历到,返回空的数组,有返回权限列表:param parentId::return:dict'''data_list = [i for i in DATA if i['parent_group_id'] == parent_group_id]data_list = sorted(data_list, key=lambda x: x['order_num'])# print(data_list)if len(data_list) > 0:data = []for dept in data_list:children_list = constructDeptTrees(dept['group_id'])if children_list:dept['children'] = children_listdata.append(dept)return datareturn []group_tree = constructDeptTrees()
print(group_tree)

[{'group_id': 1, 'group_name': '桂妃山', 'parent_group_id': None, 'description': None, 'order_num': 1, 'group_level': 1, 'children': [{'group_id': 2, 'group_name': '1栋1层', 'parent_group_id': 1, 'description': None, 'order_num': 1, 'group_level': 2, 'children': [{'group_id': 6, 'group_name': '1线', 'parent_group_id': 2, 'description': None, 'order_num': 1, 'group_level': 3, 'children': [{'group_id': 16, 'group_name': '饲喂器1', 'parent_group_id': 6, 'description': None, 'order_num': 1, 'group_level': 4}, {'group_id': 17, 'group_name': '饲喂器2', 'parent_group_id': 6, 'description': None, 'order_num': 2, 'group_level': 4}]}, {'group_id': 7, 'group_name': '2线', 'parent_group_id': 2, 'description': None, 'order_num': 2, 'group_level': 3, 'children': [{'group_id': 18, 'group_name': '查情宝1', 'parent_group_id': 7, 'description': None, 'order_num': 1, 'group_level': 4}, {'group_id': 19, 'group_name': '查情宝2', 'parent_group_id': 7, 'description': None, 'order_num': 2, 'group_level': 4}]}, {'group_id': 8, 'group_name': '3线', 'parent_group_id': 2, 'description': None, 'order_num': 3, 'group_level': 3, 'children': [{'group_id': 20, 'group_name': '多奶宝1', 'parent_group_id': 8, 'description': None, 'order_num': 1, 'group_level': 4}, {'group_id': 21, 'group_name': '多奶宝2', 'parent_group_id': 8, 'description': None, 'order_num': 2, 'group_level': 4}]}, {'group_id': 9, 'group_name': '4线', 'parent_group_id': 2, 'description': None, 'order_num': 4, 'group_level': 3}]}, {'group_id': 3, 'group_name': '1栋2层', 'parent_group_id': 1, 'description': None, 'order_num': 2, 'group_level': 2, 'children': [{'group_id': 10, 'group_name': '1线', 'parent_group_id': 3, 'description': None, 'order_num': 1, 'group_level': 3}, {'group_id': 11, 'group_name': '2线', 'parent_group_id': 3, 'description': None, 'order_num': 2, 'group_level': 3}, {'group_id': 12, 'group_name': '3线', 'parent_group_id': 3, 'description': None, 'order_num': 3, 'group_level': 3}, {'group_id': 13, 'group_name': '4线', 'parent_group_id': 3, 'description': None, 'order_num': 4,'group_level': 3}]},{'group_id': 4, 'group_name': '1栋3层', 'parent_group_id': 1, 'description': None, 'order_num': 3,'group_level': 2, 'children': [{'group_id': 14, 'group_name': '1线', 'parent_group_id': 4, 'description': None, 'order_num': 1,'group_level': 3},{'group_id': 15, 'group_name': '2线', 'parent_group_id': 4, 'description': None, 'order_num': 2,'group_level': 3}]},{'group_id': 5, 'group_name': '1栋4层', 'parent_group_id': 1, 'description': None, 'order_num': 4,'group_level': 2}]}]

python设备分组(部门分组等)功能设计相关推荐

  1. Python使用matplotlib绘制分组对比柱状图(bar plot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案

    Python使用matplotlib绘制分组对比柱状图可视化时(bar plot)汉语(中文)标签显示成了框框□□.什么情况.我们有解决方案 目录

  2. Python数据分析pandas之分组统计透视表

    Python数据分析pandas之分组统计透视表 数据聚合统计 Padans里的聚合统计即是应用分组的方法对数据框进行聚合统计,常见的有min(最小).max(最大).avg(平均值).sum(求和) ...

  3. Python数据聚合和分组运算(1)-GroupBy Mechanics

    前言 Python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活.<Python for Data Analysis>这本书第9章详细的介绍了这方面的用法,但是有些细节不常用 ...

  4. 【学习经典】python 数据聚合与分组运算(part 2)

    本文的前半部分:python 数据聚合与分组运算(part 1) 4. 透视表和交叉表 透视表(pivot table)是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具.它根据一个或多个键 ...

  5. Python中的groupby分组

    Python中的groupby分组 一.groupby函数 groupby函数功能:对DataFrame进行分组(可单类分组,可多类分组) 需求:按"字段"列对数据data进行分组 ...

  6. python 数据聚合与分组

    python 数据聚合与分组 前面讲完了字符处理,但对数据进行整体性的聚合运算以及分组操作也是数据分析的重要内容. 通过数据的聚合与分组,我们能更容易的发现隐藏在数据中的规律. 数据分组 数据的分组核 ...

  7. Python数据清洗小技巧——分组聚合

    分组聚合 分组 groupby原理 import numpy as np import pandas as pddf = pd.DataFrame(data = {'sex':np.random.ra ...

  8. mysql自定义函数分组_mysql中的排序和分组及分组函数

    现实中有很多这样的需求,对全班同学成绩进行排名,将所有的学生信息按照班级来分组,先将学生按班级分组再进行成绩排名等等.今天老韩就来介绍一下如何通过数据库的排序.分组.分组排序来实现这个需求(是排序,不 ...

  9. vfp python_python foxpro数据聚合和分组运算——分组级运算和转换(3)

    数据聚合和分组运算--分组级运算和转换(3),有需要的朋友可以参考下. 1.假设我们想要为一个DataFrame添加一个用于存放各索引分组平均值的列,一个办法是先聚合再合并: >>> ...

最新文章

  1. tcp/ip 协议栈Linux内核源码分析13 udp套接字发送流程二
  2. 非归档模式下重做日志覆盖后的rman恢复
  3. 【转】 Linux内核中读写文件数据的方法--不错
  4. 自然人税收管理系统扣缴客户端服务器超时,“自然人税收管理系统”扣缴客户端常见问题十问十答...
  5. mysql 查询慢 分析_MySQL优化:定位慢查询的两种方法以及使用explain分析SQL
  6. LeetCode 856. 括号的分数
  7. 不可思议的素数(下)
  8. python元组和集合的区别_python 元组与list的区别
  9. 解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误[原创]
  10. linux office转pdf python_使用python写的PDF转EXCEL工具,已打包exe
  11. Visio 2003 精简版(简体中文,免激活)百度云链接
  12. 六安技师学院计算机网络技术,安徽六安技师学院2021年招生简章
  13. matlab在图像两点连线,matlab画图,画出任意两点间的连线图,请高人帮忙呀,谢谢!谢谢!...
  14. MATLAB基本操作之画图
  15. Android 查看 wifi 密码
  16. Unity Spine 换装
  17. Js打开QQ聊天对话窗口
  18. 高斯公式积分matlab,三用MATLAB实现定积分计算.PPT
  19. 目前数据分析师都有哪些国际认证
  20. java实用教程第五版电子书,爱了爱了

热门文章

  1. ONEXBBC后台登录时需要shopexID
  2. ap计算机科学原则,无线AP选型设计原则详解
  3. 黑马程序员_Java_反射
  4. python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
  5. 设计模式(3)----- 简单工厂模式
  6. tomcat项目在Linux下生成文件路径错误问题
  7. postman发启多次请求测试
  8. 网络重置导致无法联网
  9. 【C++进阶】第二十篇——map和set(map和set的用法+multimap+multiset+map和set代码实现)
  10. 关于考试作弊引发的关于诚信的思考