从数据库查询在python中创建嵌套字典

时间:2014-11-19 14:13:16

标签: python dictionary

我有从数据库中检索的信息:

包含

等字段

|Portfolio| Date | Sector| Industry | Ticker | Price | Postion|

之类的数据
("us", "2013-01", "Consumer","Retail","PM",10,1000)
("us", "2013-01", "Consumer", "Retail", "JCP", 15, 1500) ...

如何将其转换为如下字典:

{us:{"2013-01":{"Consumer":{"Retail":{"PM":{"Price":10,"Position":1000},"JCP":{"Price":15, "Position":1500}}}}}}

以最有效的时间和资源方式?

类似

a[Date][Sector][Industry][Ticker].update("PM2" = dict(close=10, position = 1000))

给我一​​个错误。

由于

1 个答案:

答案 0 :(得分:1)

你没有指定什么错误。

无论如何,这可以通过迭代每一行并使用setdefault方法dict来完成,在那里你可以检查项目并查看它是否已经出现在dict中。

所以,例如 -

a = {}
a.setdefault('us', {})
....
....
# if a now is 
# {'us':{"2013-01":{"Consumer":{"Retail":{"PM":{"Price":10,"Position":1000}}}}}}
# and you are iterating on 2nd row
a['us']['2013-01']['Consumer']['Retail'].setupdate('JCP', {})
.....

你可能想为此编写一个函数。这只是关于如何编写更好的方法的想法。