Python没有打印完整的数据结构

时间:2012-03-06 13:23:42

标签: python data-structures pretty-print

所以我有一个Python文件,其中包含大量嵌套字典和列表的数据,如下所示:

recipes = {
    "recipe": {
        "name": "solar_panel",
        "type": "craft",
        "ingredients": {
            "input": [
                "coal_dust",
                "glass",
                "coal_dust",
                "glass",
                "coal_dust",
                "glass",
                "electronic_circuit",
                "generator",
                "electronic_circuit"
            ],
            "output": {
                "item": "solar_panel",
                "quantity": 1
            }
        }
    },
    "recipe": {
        "name": "re_battery",
        "type": "craft",
        "ingredients": {
            "input": [
                "nothing",
                "insulated_copper_cable",
                "nothing",
                "tin",
                "redstone",
                "tin",
                "tin",
                "redstone",
                "tin"
            ],
            "output": {
                "item": "re_battery",
                "quantity": 1
            }
        }
    }
}

然后我有一个Python脚本就是这个

import vanilla
print(vanilla.recipes)

有人会认为这只是打印完整的数据结构,但事实上它只打印最后一个子项(列表中的第23-43行)。我觉得我在这里遗漏了一些明显的东西。

2 个答案:

答案 0 :(得分:6)

这是因为键是相同的 - recipe,所以它只保存字典中的最后一项。

>>> {'a': 1, 'a': 2}
{'a': 2}

答案 1 :(得分:1)

只有一个子项存在,因为每个键必须是唯一的。如果您想要一个键的多个值,那么您必须将它们放在一个序列中,例如列表或元组。