У меня есть таблица базы данных следующим образом. Данные в виде дерева сВставить дерево данных, взятых из базы данных в словарь python
CREATE TABLE IF NOT EXISTS DOMAIN_HIERARCHY (
COMPONENT_ID INT NOT NULL ,
LEVEL INT NOT NULL ,
COMPONENT_NAME VARCHAR(127) NOT NULL ,
PARENT INT NOT NULL ,
PRIMARY KEY (COMPONENT_ID)
);
следующие данные в таблице
(1,1,'A',0)
(2,2,'AA',1)
(3,2,'AB',1)
(4,3,'AAA',2)
(5,3,'AAB',2)
(6,3,'ABA',3)
(7,3,'ABB',3)
я получить данные и хранить в словаре питона
Я написал ниже кода
conx = sqlite3.connect('nameofdatabase.db')
curs = conx.cursor()
curs.execute('SELECT COMPONENT_ID, LEVEL, COMPONENT_NAME, PARENT FROM DOMAIN_HIERARCHY')
rows = curs.fetchall()
cmap = {}
for row in rows:
cmap[row[0]] = row[2]
hrcy={}
for level in range(1, maxl + 1):
for row in rows:
if row[1] == level:
if hrcy == {}:
hrcy[row[2]] = []
continue
parent = cmap[row[3]]
hrcy[parent].append({ row[2]: [] })
Проблема, с которой я столкнулся, - это узлы более 2-го уровня, они добавляются к корню вместо родителя; где мне следует изменить код?
Это работает !!! Большое спасибо Дон Криби :) – Praneeth