我目前有一个数据表。每一行对应于一个资产,与表示有关资产不同字段的列(例如:部分无,位置,等等。)有两列我对:
父资产包含父资产的资产标签。
例如,假设我们拥有资产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
还有其他想法吗?