多层字典嵌套 取相应的数据

from django.test import TestCase
import requests

global_dict = dict()


def insert_data(data):
    """递归 把所有部门对应的id_hierarchy取出放入一个大字典中"""
    global_dict[data["id"]] = data["id_hierarchy"]
    sub_departments = data["sub_departments"]
    if sub_departments:
        for sub_data in sub_departments:
            insert_data(sub_data)


def get_data(ids):
    url = 'https://access.test.starmerx.com/api/departments/'
    headers = {
        'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}

    response = requests.get(url=url, headers=headers)
    page_text = response.json()
    data = page_text['data']
    insert_data(data)
    num = 0
    #  把最下层级数找出来
    d = None
    for id in ids:
        d = {}
        if num <= global_dict.get(id).count('-') + 1:
            num = global_dict.get(id).count('-') + 1
            d[id] = num
    di = {}
    #  把最下层级的部门id找出来
    for id1 in ids:
        if num <= global_dict.get(id1).count('-') + 1:
            num = global_dict.get(id1).count('-') + 1
            di[id1] = num
    if di:
        department_list = []
        for i in di.keys():
            department_list.append(i)
        return department_list
    return None


# if __name__ == "__main__":
#     department_list = get_data(ids=[3, 818, 744, 739])


版权声明:本文为zhouxuan612原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。