ここに私の問題があります:リストがリストでない場合、リストの最初の要素を取得します。
私はPythonでLDAP検索を行っています。検索によって辞書オブジェクトが返されます。
{'mail':['[email protected]'],'mobile':['07852242242'], 'telephoneNumber':['01112512152']}
ご覧のとおり、返された辞書にはリスト値が含まれています。
時々、何の結果は見つかりません:
{'mail':None, 'mobile':None, 'telephoneNumber':['01112512152']}
は、辞書項目が存在しない場合は、例外を避けるために、私は、get()を使用しています、必要な値を抽出します。
return {"uname":x.get('mail')[0], "telephone":x.get('telephoneNumber')[0], "mobile":x.get('mobile')[0]}
私は単なる文字列値で、上記のように自分の辞書を返すようにしたいが、Imはリストはどれもないではないことを確認し、インデックス・エラーやタイプミスに稼働を維持するための効率的な方法を見つけるのに苦労:
(<type 'exceptions.TypeError'>, TypeError("'NoneType' object is unsubscriptable",)
リストにget()メソッドを使用する方法があるので、リストがNoneの場合は例外がスローされません???
{"uname":x.get('mail').get(0)}
リストの最初の値を取得または使用せずにNoneを返さないの最も効率的な方法は何ですか:
if isinstance(x.get('mail'),list):
または
if x.get('mail') is not None:
非常にいい、ありがとう – rslnx
これは私が必要としていたものです、私は誰かが私のニーズに合ったものを構築することができなかったので、リストやディクテーションの理解を思いつくことを望んでいた!ありがとう! – JackalopeZero