Python2.6中是否有解决6656问题的方法?

Python2.6中是否有解决6656问题的方法?,python,Python,我目前仍停留在Python2.6上,遇到locale.format_字符串在转义百分比上失败,这似乎只有在2.7+中才能修复。除了不使用locale.format\u字符串之外,还有什么可行的方法来解决这个问题吗 编辑:我刚刚发现问题还应该解决locale.format_字符串在映射键时失败的问题。是否有解决方法?是的,将百分比字符设置为插值: locale.format_string('%f%s', (1.0, '%')) 演示: 聪明,但对我来说不行。我保留了不同格式字符串的dict,这取

我目前仍停留在Python2.6上,遇到locale.format_字符串在转义百分比上失败,这似乎只有在2.7+中才能修复。除了不使用locale.format\u字符串之外,还有什么可行的方法来解决这个问题吗


编辑:我刚刚发现问题还应该解决locale.format_字符串在映射键时失败的问题。是否有解决方法?

是的,将百分比字符设置为插值:

locale.format_string('%f%s', (1.0, '%'))
演示:


聪明,但对我来说不行。我保留了不同格式字符串的dict,这取决于我要格式化的字段,根据字段类型有或没有百分比。如果python可以忽略其他参数,我会很好,但事实并非如此。再想一想,我可能会发现在字符串格式化异常期间并没有转换所有参数,或者可能会添加“%”,以防引发格式字符串的参数不足。如果您正在使用格式化参数字典并使用“%nf%percs”,则{'n':1.0,“perc':“%”如果perc键没有占位符,则不应抱怨;所以'%nf',{'n':1.0,'perc':'%}也可以工作。这样你就可以随时添加perc键,而不用担心异常。再聪明一点,试试看。谢谢如果不是因为另一个Python2.6 bug的话,这本应该是可行的:我编辑了这个问题来反映这一点,也许你也有一个解决方法。否则,恐怕除了fork locale.py之外没有别的办法了…@NikolaiProkoschenko:啊,对了,在这种情况下,你必须解析%\\w+\[sfdgbx..]格式占位符,并将整个内容转换为位置参数。真痛苦!
>>> import locale
>>> locale.format_string('%f%s', (1.0, '%'))
'1.000000%'