1
我有一個數據庫表,如下所示。該數據是在樹與在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)
我必須找回在Python字典
在下面的數據和存儲代碼
conx = sqlite3.connect('nameofdatabase.db')
curs = conx.cursor()
curs.execute('SELECT COMPONENT_ID, LEVEL, COMPONENT_NAME, PARENT FROM DOMAIN_HIERARCHY')
rows = curs.fetchall()
hrcy = {}
for row in rows:
entry = (row[2], {})
cmap[row[0]] = entry
if row[1] == 1:
hrcy = {entry[0]: entry[1]}
hrcy['status'] = 0
for row in rows:
item = cmap[row[0]]
parent = cmap.get(row[3], None)
if parent:
parent[1][row[2]] = item[1]
parent[1]['status'] = 0
print json.dumps(hrcy, indent = 4)
輸出是像
{
"status": 0,
"A": {
"status": 0,
"AA": {
"status": 0,
"AAA": {},
"AAB": {}
},
"AB": {
"status": 0,
"ABA": {},
"ABB": {}
}
}
}
我要像
{
"component": "A",
"status": 0,
"children": [
{
"component": "AA",
"status": 0,
"children": [
{
"component": "AAA",
"status": 0,
"children": []
},
{
"component": "AAB",
"status": 0,
"children": []
}
]
},
{
"component": "AB",
"status": 0,
"children": [
{
"component": "ABA",
"status": 0,
"children": []
},
{
"component": "ABB",
"status": 0,
"children": []
}
]
}
]
}
輸出誰能告訴什麼樣的變化,我應該做什麼呢?
不敢相信這簡單的小代碼解決了我的「無法解決」的問題謝謝你Janne Karela – Praneeth 2013-03-26 08:45:18