私は入れ子リストと辞書を含む辞書を解析しようとしています。私は、特定のキーが存在するかどうかを検出し、その値を適切な変数に保存しようとしています。以下のコードは動作しますが、信じられないほど乱雑です。これを適切に処理する方法はありますか?Try/Except in Python:辞書の解析に適していますか?
def wit_response(self, message_text=None):
if message_text is not None:
resp = self.client.message(message_text)
print(resp)
try:
intent = resp['entities']['intent'][0]['value']
except:
intent = None
try:
location = resp['entities']['location'][0]['value']
except:
location = None
try:
datetimefrom = resp['entities']['datetime'][0]['values'][0]['from']['value']
except:
datetimefrom = None
try:
datetimeto = resp['entities']['datetime'][0]['values'][0]['to']['value']
except:
datetimeto = None
どのようなrespが表示されるかの例。
{u'entities ':{u'intent':[{u'confidence ':0.99699357488585、u'value':u'weather '}]、u'location':[{「u'suggested 'u'value':u'value ':u'like'}]}、u'msg_id ':u'0jkzwqMkSkpZsKJYx'、u'_text ':u'天気はどうですか? '}
私によく見えます。私はこれをやるのが面倒な方法はないとは思わない。 – DyZ
これを行う簡潔な方法が欲しいのですか? – aircraft
私はswitch文を使用してnullやそのようなものを調べることに慣れていたと思います。これは本当にPythonでこれを行う適切な方法ですか?私はこれが非常に大きなブロックとなることを心配しています。もっと簡潔な方法があれば、私はそれを使いたいです。 – Metasyntactic