代码之家  ›  专栏  ›  技术社区  ›  shahjapan

解析字符串并用其值替换字符串的最佳方法是什么?

  •  2
  • shahjapan  · 技术社区  · 16 年前

    我可能有一根绳子,

    """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 回复  |  直到 13 年前
        1
  •  0
  •   Olivier Verdier    16 年前

    如果要进行复杂的模板化,可以考虑使用类似 Jinja . 还有很多其他的。

        2
  •  2
  •   Hackeron    16 年前

    python在python 2.6和3.0中对字符串实现了一个新的.format()方法。查看此PEP: http://www.python.org/dev/peps/pep-3101/

    它比%operator更强大、更灵活,内置于python中:

    以下是政治公众人物的一些例子:

    "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的模板引擎。

        3
  •  1
  •   chauncey    13 年前

    如果你在找一些简单的东西,试着看看 Python's builtin Template. 我使用它非常方便快捷地模板化,而不需要安装额外的包。

    还有新的 format() 方法。