解析字符串并用其值替换的最佳方法是什么?
我可能有这样的字符串:
"""Hello, %(name)s,
how are you today,
here is amount needed: %(partner_id.account_id.debit_amount)d
"""
对于这样的模板,最好的解决方案是什么呢?我可能需要结合正则表达式和 eval
。输入的字符串可能会有所不同,比如 $partner_id.account_id.debit_amount$
- 目前我把它当作 Python 字符串格式来处理,只是为了测试。
3 个回答
1
如果你想找一些简单的东西,可以看看Python自带的模板功能。我经常用它来快速和轻松地创建模板,不需要额外安装其他软件包。
还有一个新的format()方法。
2
在Python 2.6和3.0中,字符串上新增了一个叫做.format()的方法。你可以查看这个PEP文档:http://www.python.org/dev/peps/pep-3101/
这个方法比之前的%运算符更强大、更灵活,而且是Python自带的功能:
下面是PEP文档中的一些例子:
"My name is {0}".format('Fred')
"My name is {0.name}".format(open('out.txt', 'w'))
"My name is {0[name]}".format({'name':'Fred'})
如果这个方法能满足你的需求,那就足够了;如果不够,可以看看像Jinja这样的模板引擎,正如其他人提到的那样。
0
如果你打算做一些复杂的模板处理,可以考虑使用一个高级的模板引擎,比如Jinja。还有很多其他的选择。