Mysql结果中的Python合并字典

时间:2014-04-21 18:22:53

标签: python mysql dictionary

我正在尝试获取7个MySQL查询的输出并将它们合并到特定字段(第一个,ID)。

我的第一个初步想法是将七个查询的结果放入字典中,第一个字段为KEY,其余为VALUES。

returnDict = dict([(k[0], k[1:]) for k in output])

一旦我将七个查询的结果输入到他们自己的Dicts中,我可以通过执行以下操作将它们组合成一个字典:

for d in (firstDict, secondDict, thirdDict, fourthDict, fifthDict, sixthDict, seventhDict): 
            for key, value in d.iteritems():
                    dd[key].append(value)

现在,我遇到的唯一问题是,当上面的代码将字典组合在一起时,它就不会分开"分开"原始词典,它只会附加它们,从而创建一个相当混乱的字典。

这就是它的样子:

6: ('blah.net', datetime.datetime(2011, 6, 23, 0, 0), 4L, 1L, datetime.datetime(2011, 6, 23, 0, 0)), ('Foo', 1L), ('Unknown Foo', 2L), (datetime.datetime(2013, 11, 14, 12, 30, 24), 'ORIGINAL CATEGORY 3')

这就是我想要的样子:

6: 'blah.net', datetime.datetime(2011, 6, 23, 0, 0), 4L, 1L, datetime.datetime(2011, 6, 23, 0, 0), 'Foo', 1L, 'Unknown Foo', 2L, datetime.datetime(2013, 11, 14, 12, 30, 24), 'ORIGINAL CATEGORY 3'

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是在数据库端使用联合查询。

如果您想在Python中执行此操作,我会执行类似

的操作
from collections import defaultdict
dd = defaultdict(list)
for d in (firstDict, secondDict, ...):
    for key, value in d.items():
        dd[key].append(value)