forループを使って、順番に名前(taisho)が渡れて
それを使ってDBから属性情報を抽出するpythonプログラムがあります。
DBから、対象データがなかった場合、
return response['Item']でunboundlocalerrorが発生しますので
get_ageでtry~exceptでキャッチしているため
現行の結果では、name:yoshidaが表示されません。
あるべき姿にするにはどのようにすべきでしょうか?
そもそもDBから、対象データがなかった場合
ハンドリングとしてこのような処理はダサくないでしょうか?
taisho
1'tanaka','watanabe','yoshida'
python
1def get_age(name): 2 3 dynamodb = boto3.resource('dynamodb') 4 table = dynamodb.Table('sample1') 5 response = table.get_item( 6 Key={ 7 'name': name 8 } 9 ) 10 return response['Item'] 11/////////////////// /////////////////// 12///////////////////省略/////////////////// 13/////////////////// /////////////////// 14 15 for name in taisho: 16 try: 17 result = get_age(name) 18 except UnboundLocalError as ex: 19 continue 20 21 if result is not None: 22 dict = { 23 'name' : name, 24 'value' : result['age'] 25 } 26 List.append(dict)
現行:continueでDBにないデータはスキップ
List
1{name:tanaka,age:22},{name:watanabe,age:12}
あるべき姿:DBにないデータもageをブランクで表示したい
List
1{name:tanaka,age:22},{name:watanabe,age:12},{name:yoshida,age:}
回答2件
あなたの回答
tips
プレビュー