複雑なネストされた dict オブジェクトがあります。
value = {
'a': '100',
bits: {
1: 'alpha',
2: 'beta',
3: ['31', '32', 901]
}
}
テンプレートを使用して「安全に」フォーマットする必要があります。キーが見つからない場合は、{}
プレースホルダーを静かに無視してください。キーが存在しない可能性があり、KeyErrors を発生させたくありません。問題は、string.Template が str.format と同じ機能を処理できないことです。私が使用した str.format は次のようなものです。
"a=${a}, b1={bits[1]}, b31={bits[3]}, b9={bits[9]}".format(**value)
出力は次のようになります。
"a=100, b1=alpha, b31=(31, 32, 901), b9="
派手なループや if/else 条件は必要ありません。サブ辞書付きの単純なフォーマット。
私が持っているオプションは何ですか?私は可能な限りビルトインを使用するか、非常に小さなライブラリを使用することを好みます。
これは Web アプリではないため、可能であれば、このためだけに jinja2 のようなライブラリをロードすることは避けたいと考えています。