从资产数据表创建资产树

时间:2019-02-01 20:28:57

标签: python list tree assets

我目前有一个数据表。每一行对应于一个资产,与表示有关资产不同字段的列(例如:部分无,位置,等等。)有两列我对:

  1. 父母资产和
  2. 资产标签。

父资产包含父资产的资产标签。

例如,假设我们拥有资产A(资产标签为a)和母资产B(资产标签为b)。对于资产A,父资产列将为b(B的资产标签)。这意味着资产A被连接到了资产B(也许是一个机械加工成B的硬件)。但是,资产A也可能是资产C的父资产。因此,结构看起来像B-> A-> C。但是,A可能也是D的父对象。因此,结构可能看起来像B-> A-> C,D或更复杂。希望这会让您对我想从数据表中生成的树有所了解。

我不确定如何将数据处理成代表每棵树的数据结构。目前,我有一个asset类,但是我无法遍历数据并添加子级或父级,因为不知道资产之间有多少级父子关系。

我正在考虑类似的事情(代码也未提供),但这是行不通的,因为它最终只会送给父子孙子,但可能会有更多的层次。

class asset:
    def __init__(self, tag, children, parent):
        self.children = children
        self.tag = tag
        self.parent = parent

#asset list is populated of assets with only one level of children
#could be more than one child, but only children - no grandchildren


final_tree = {}
for asset in asset_list:
    dummy_asset = asset
    final_tree[asset.tag] = {asset.children}
    while x != 1:
        for child in dummy_asset.children:
            if child.children != []:
                final_tree[dummy_asset.tag] = child.children
                dummy_asset = child.children
            else:
                x = 1

还有其他想法吗?

0 个答案:

没有答案