我有一个复杂的嵌套 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 条件。只是带有子字典的简单格式。
我有哪些选择?我更喜欢尽可能使用内置函数或非常小的库。
这不是一个网络应用程序,所以如果可能的话,我不想为此加载像 jinja2 这样的库。