复杂的嵌套字典

时间:2016-07-06 15:44:20

标签: python dictionary

我的数据如下

Value(City)    Key1              Key3                Key4
Baltimore      111111            111                 122
Towson         111111            111                 122
Columbia       111111            111                 122
SilverSpring   111111            222                 122
Burtsville     111111            222                 122
Ellicotcity    111111            222                 122

通过创建字典目前我正在将上述内容分组为:

if key1 in data_dict:
    data_dict[key1].append(value)
else:
    data_dict[Key1] = [value,]

并使用以下代码插入数据。

collection.insert_many([{'key': k, 'values': v} for k,v in data_dict.items()])

Key : 111111
Values : [Baltimore, Towson, Columbia, SilverSpring, Burtsville, EllicotCity]

但我必须创建一个这样的字典。 第一部分我能够用上面提到的代码推导出来。 我无法生成具有“键”的第二部分

{
  Values : 
        [    "Baltimore",
             "Towson", 
             "Columbia",
             "SilverSpring",
             "Burtsville",
             "Ellicotcity"
        ]
  Keys :    [   
            {key1 : 111111},
            {Key2 : [1,1,1,2,2,2]}, #group array numbers just running numbers indicating the position
            {Key3 : [111,222]},   #Address Number unique
            {Key4 : [122]}         #Record2Pos Number unique
        ]
}

经过研究,我发现我们必须使用嵌套字典。 我是Python新手,需要帮助。

1 个答案:

答案 0 :(得分:0)

这是一个在python提示符下完成的简短示例 - 在创建模块以测试您正在学习的概念之前,这是一种尝试代码的好方法。

>>> dict1 = {'a':0,'b':1}
>>> dict2 = {'c':2,'d':3}
>>> nestedDict = {'key0':dict1, 'key1':dict2}
>>> dict1
{'a': 0, 'b': 1}
>>> dict2
{'c': 2, 'd': 3}
>>> nestedDict
{'key1': {'c': 2, 'd': 3}, 'key0': {'a': 0, 'b': 1}}
>>> nestedDict.keys()
['key1', 'key0']
>>> nestedDict.values()
[{'c': 2, 'd': 3}, {'a': 0, 'b': 1}]

从这里开始,您必须弄清楚如何根据需要构建数据。此外,您应该搜索如何创建字典。有很多方法,详见SO。