PythonのdictでkeyがなくてもKeyError例外をださない方法
KeyErrorの例外をキャッチするために例外を書いてたが、dic.get()を使えばそんな必要もない。公式ドキュメントを読むのが大事といいますが、ほんとですね。
dic = {"id":"1000", "name":"okaz", "group":['sys', 'wheel', 'optical']} print(dic["id"]) print(dic.get("id")) #1000 #1000
存在しないkeyを指定すると例外になる
print(dic["firstname"]) KeyError Traceback (most recent call last) <ipython-input-5-8c387397d402> in <module>() 1 dic = {"id":"1000", "name":"okaz", "group":['sys', 'wheel', 'optical']} 2 ----> 3 dic["firstname"] KeyError: 'firstname'
.get()を使うと、keyが存在しなければdefaultに設定された値を返す。defaultを指定しなければNoneを返す。
print(dic.get("firstname")) dic.get("firstname") == True # False dic.get("firstname") == False # False dic.get("firstname") == None # True dic.get("firstname", 'naiyo') # naiyo
- 作者: 中島省吾
- 出版社/メーカー: 日経BP
- 発売日: 2019/06/06
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
現場ですぐに使える! Pythonプログラミング逆引き大全 313の極意
- 作者: 金城俊哉
- 出版社/メーカー: 秀和システム
- 発売日: 2018/04/23
- メディア: Kindle版
- この商品を含むブログを見る