2012-03-06 3 views
0

は、だから私はこのようになり、ネストされた辞書やリストのデータの大規模なセットが含まれているPythonのファイルを持っている完全なデータ構造を印刷しない:私はこのPythonは

である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 
      } 
     } 
    } 
} 

import vanilla 
print(vanilla.recipes) 

実際には、完全なデータ構造を印刷すると考えられますが、実際には最後の子アイテム(リストの23〜43行目)だけが印刷されます。ここで明白な何かが欠けているような気がする。

答えて

6

キーは同じです(recipe)ので、辞書の最後の項目だけが保存されます。各キーは一意である必要がありますので、

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

AH、意味があります。このデータは、ミックスアップがどのように起こったかをxmlから変換したものです。 – giodamelio

+0

10分待たなければなりません:D。途中で速い答えをありがとう、3分はかなり素晴らしいです。 – giodamelio

1

つだけの子項目は、が存在します。あるキーに複数の値が必要な場合は、それらをリストやタプルなどのシーケンスに入れなければなりません。