次のテストデータでは、キー 'x'の値をリストlsに追加しようとしています。私の質問は、データの最初の行をループするときに私がKeyErrorを取得しなかった理由です。明らかに、最初の行にはキー 'x'が含まれていません。もともと私はTry/Exceptを使用してデータをループする際にエラーを避けなければならないと考えましたが、Try/Exceptは必要ないと思われます。なぜキーが存在しないときにKeyErrorを取得できませんでしたか?
ここでKeyErrorが生成されないのはなぜですか?
data = [{u'xyz': []},
{u'xyz': [{u'x' : 2,
u'y' : 3,
u'z' : 4}]}]
ls = []
for item in data:
ddd = item['xyz']
print ddd
for d in ddd:
ls.append(d['x'])
ls
出力:
[]
[{u'y': 3, u'x': 2, u'z': 4}]
[2]