0

我需要一些帮助来解决我遇到的 Python 问题。我有一些来自 MySQL 数据库的数据,我想从中制作父/子字典。

我正在检索的数据包含两个值,名称和大小:那么我如何从这些值转到字典,如下所示。

{
    "name": " ",
    "children": [
        {
            "name": "HSC",
            "size": 0.2,
            "children": [
                {
                    "name": "MPP",
                    "size": 15,
                    "children": [
                        {
                            "name": "CMP",
                            "size": 8,
                            "children": [
                                {
                                    "name": "MEP",
                                    "size": 6
                                },
                                {
                                    "name": "GMP",
                                    "size": 10,
                                    "children": [
                                        {
                                            "name": "early PM",
                                            "size": 2
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

我写了一些代码:

cur.execute('SELECT DISTINCT gene_data.gene_name, gene_data.mean FROM genes INNER JOIN gene_data ON genes.id = gene_data.g_id WHERE genes.name =  %s AND genes.type = %s  AND gene_data.probe_name = %s', (gene, types,  probe))

rows = cur.fetchall()
cmap = {}
for row in rows:
    entry = {'name': row[0], 'size': row[1], 'children':[]}
    cmap[row[0]] = entry

for index, row in enumerate(rows):
    item = cmap[row[0]]
    if((index+2)>len(rows)):
        parent = cmap.get( row[0], None )
        parent["children"].append(item.copy())
        if parent:
            parent["children"].append(item.copy)
            hrcy = parent["children"]
            print hrcy
    else:
        next = rows[index+1]
        nextItem = cmap[next[0]]
        parent = cmap.get( row[0], None )
        #parent["children"].append(nextItem.copy())
        if parent:
            parent["children"].append(nextItem.copy())

当我运行这段代码时,我只得到一行。我需要将每一行添加到以前的子元素中。

4

0 回答 0