用Python构造字典

时间:2017-03-10 16:38:10

标签: python dictionary

我正在编写一个程序来解析已安装的Web框架,安装的插件,版本,主题的服务器(托管多个域)的文件系统......所以在服务器上可以是一个域,其中是一个Wordpress和两个TYPO3安装 我正在尝试构建一个大的JSON文件,其中存储了所有信息。我的想法是迭代地构建具有属于一起的信息的较小字典,然后 - 当我将它们全部放在一起时 - 将它们连接到一个大字典并将其写为JSON。 这是一个可视化的小摘录

www.this.is.a.domain: {
frameworks:
    {
        wordpress: {
            path: [{
                path/to/my/first/wp: {
                    plugins: [
                        {
                            name: foo,
                            status: active
                        },
                        {
                            name: bar,
                            status: inactive
                        }
                    ]
                }
            }]
        },
        typo3: {
            path: [{
                path/to/my/first/typo3: {
                    version: 1.2.3,
                    plugins: [
                        {
                            name: foo,
                            status: active
                        },
                        {
                            name: bar,
                            status: inactive
                        }
                    ]
                },
                path/to/my/second/typo3: {
                    version: 3.4.5,
                    plugins: [
                        {
                            name: foo,
                            status: inactive
                        },
                        {
                            name: baz,
                            status: active
                        }
                    ]
                }]
            }
        }
    }
}

现在我的问题:
看看TYPO3部分。我在不同的路径中有两个不同的安装。在Python字典中,我会有一个字典列表,如{path: [{path01: {plugins:[{...}]}, {path02: {plugins:[{...}]}]} 我遇到的问题是,如果我有另一个关于我的TYPO3主题的词典,如{path: [{path/to/my/first/typo3: {theme: baz}}]}我怎么能在我的第一个词典中插入这些信息,因为我不知道列表的哪个位置正确的路径是。字典中的列表使事情变得非常复杂,但我需要它们,因为我不能同时获得所有信息。首先,我解析第一个安装路径,收集我可以获得的所有信息,然后关闭到下一个路径。所以我需要附加到一个列表但是我不能将其他信息添加到列表中的dict中,当我想要放置其他信息的地方的键就像是一个dict里面的路径列表。

我错过了一些明显的东西吗?是否有更适合的数据结构来构建我的JSON?

简单地说:当我在大字典中搜索的内容深入时,如何将其他信息添加到位于字典列表中的字典(如主题示例)中列表中的嵌套键?

最小例子:
我该如何添加

{plugins: [
    {
        name: foo,
        status: active
    },
    {
        name: bar,
        status: inactive
    }
]}

dict = {'domain': {'vt': {'path': [{'p1': {'version': '1.2.3'}}, {'p2': {'version': '2.2.3'}}]}}}

作为'p2'的附加值?

0 个答案:

没有答案