json データから作成された大きな python dict があり、大きな dict から小さな dict を作成しています。大きなディクショナリの一部の要素には「詳細」と呼ばれるキーがあり、一部の要素にはありません。私がやりたいことは、大きな辞書の各エントリにキーが存在するかどうかを確認し、存在しない場合は、キー「詳細」を値「詳細なし」で新しい辞書に追加することです。デモとして、いくつかのサンプル コードを以下に示します。LargeDict はコード内に多くのキーがあるため、はるかに大きくなりますが、わかりやすくするために単純にしています。
LargeDict = {'results':
[{'name':'john','age':'23','datestart':'12/07/08','department':'Finance','details':'Good Employee'},
{'name':'barry','age':'26','datestart':'25/08/10','department':'HR','details':'Also does payroll'},
{'name':'sarah','age':'32','datestart':'13/05/05','department':'Sales','details':'Due for promotion'},
{'name':'lisa','age':'21','datestart':'02/05/12','department':'Finance'}]}
これは、SmallDict のデータを取得する方法です。
SmallDict = {d['name']:{'department':d['department'],'details':d['details']} for d in LargeDict['results']}
ただし、大きな dict エントリの 1 つに詳細がない場合、キー エラーが発生します。モジュールを使用する必要があると言っているのは正しいDefaultDict
ですか、それとももっと簡単な方法がありますか?