'如何在{xlink:href}' .format_map(属性)中转义冒号?

时间:2015-08-22 12:10:30

标签: python-3.x escaping

摘要'{key:spec}'.format_map(dic)允许格式化dic访问的key中的值。 spec说明应如何格式化。但是,如果我想将分隔冒号作为密钥的一部分怎么办?我怎么知道冒号不是分隔符而下一个字符不是规范?

详情:我使用字符串模板将XML属性转换为另一个文本。比如说,我在attributes字典中有一个XML元素的属性。其中一个具有键'xlink:href'(属性的文字名称)。使用.format_map()方法时,应该如何编写格式字符串?

'{xlink:href}'.format_map(attributes)不起作用。 Python抱怨KeyError: 'xlink'。 (href可能被认为是错误的规范,但异常会停止进一步处理。)

1 个答案:

答案 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>