所以我有一个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行)。我觉得我在这里遗漏了一些明显的东西。
答案 0 :(得分:6)
这是因为键是相同的 - recipe
,所以它只保存字典中的最后一项。
>>> {'a': 1, 'a': 2}
{'a': 2}
答案 1 :(得分:1)
只有一个子项存在,因为每个键必须是唯一的。如果您想要一个键的多个值,那么您必须将它们放在一个序列中,例如列表或元组。