2 次元の連想配列 (辞書) があります。for ループを使用して最初の次元を反復し、各反復で 2 番目の次元の辞書を抽出したいと思います。
例えば:
#!/usr/bin/python
doubleDict = dict()
doubleDict['one'] = dict()
doubleDict['one']['type'] = 'animal'
doubleDict['one']['name'] = 'joe'
doubleDict['one']['species'] = 'monkey'
doubleDict['two'] = dict()
doubleDict['two']['type'] = 'plant'
doubleDict['two']['name'] = 'moe'
doubleDict['two']['species'] = 'oak'
for thing in doubleDict:
print thing
print thing['type']
print thing['name']
print thing['species']
私の望む出力:
{'type': 'plant', 'name': 'moe', 'species': 'oak'}
plant
moe
oak
私の実際の出力:
two
Traceback (most recent call last):
File "./test.py", line 16, in <module>
print thing['type']
TypeError: string indices must be integers, not str
私は何が欠けていますか?
PS私はできることを知ってfor k,v in doubleDict
いますが、長いif k == 'type': ... elif k == 'name': ...
ステートメントを実行する必要がないようにしています。thing['type']
直接電話できるようにしたいです。