我try 用花括号格式化字符串,如下所示:
dct_mapper = dict(a=1)
s = '{key1: value2, key1: value2}; attrib1={a}; attrib2={b}'
s.format(**dct_mapper)
Results in:
# KeyError: 'key1'
Expected:
# '{key1: value2, key1: value2}; attrib1=1; attrib2={b}'
另一个限制是,我需要在以后的输出中再次使用.format_map()
,这会导致使用的解决方案出错.format(),因为外面的花括号将消失.
我try 了defaultdict from the collections个包,也try 了.format_map()个包,然后用正则表达式替换brackets with additional ones,这感觉不像是一个解决方案,更像是一个黑客,如果字符串中有多个重复括号,那么它也不起作用.
它不是一个json字符串,因为这样我就可以使用json库来映射这些值.
有人知道如何解决这个问题吗?
我目前考虑使用循环和str.replace('{a}', 1)
,但这感觉笨拙.