摘要:'{key:spec}'.format_map(dic)
允许格式化dic
访问的key
中的值。 spec
说明应如何格式化。但是,如果我想将分隔冒号作为密钥的一部分怎么办?我怎么知道冒号不是分隔符而下一个字符不是规范?
详情:我使用字符串模板将XML属性转换为另一个文本。比如说,我在attributes
字典中有一个XML元素的属性。其中一个具有键'xlink:href'
(属性的文字名称)。使用.format_map()
方法时,应该如何编写格式字符串?
'{xlink:href}'.format_map(attributes)
不起作用。 Python抱怨KeyError: 'xlink'
。 (href
可能被认为是错误的规范,但异常会停止进一步处理。)
答案 0 :(得分:1)
{xlink:href}
无法逃避冒号
You can't specify arbitrary keys in the replacement field:
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
arg_name ::= [identifier | integer]
attribute_name ::= identifier
element_index ::= integer | index_string
index_string ::= <any source character except "]"> +
conversion ::= "r" | "s" | "a"
format_spec ::= <described in the next section>