python - 在一个模板中格式化任意可迭代对象

标签 python python-3.x string-formatting

是否可以使用Python 3.4的内置字符串格式化工具将任意可迭代项重复格式化为一个通用模板?

即我想知道是否有一些魔法可以渲染单个字符串,例如:

TEMPLATE = '''Hello {name},

 these are your items:

* {item for item in items}'''

使用string.format

OUTPUT = TEMPLATE.format(name='John Doe', items=['foo', 'bar', 123])

这样输出将是:

Hello John Doe,

these are your items:

* foo
* bar
* 123

我知道我可以使用单个项目的单独模板来实现结果,然后将其呈现为上级格式字符串。但我想一步到位。

最佳答案

我建议您针对此用例使用 Jinja2 模板 - 它非常快并且很多人都使用它。

参见http://jinja.pocoo.org了解更多信息。

关于python - 在一个模板中格式化任意可迭代对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46909813/

相关文章:

Python 和 Nameko - GreenSSLSocket 没有公共(public)构造函数。实例由 SSLContext.wrap_socket() 返回。

python - 如何注释可以转换为 bool 值的参数?

python-3.x - 首先解构/解包,然后在 Clojure 中休息

c# - Format Decimal 2 Places - 无尾随零

python - 使用字典(python)中的特定键构建列表?

python - 在 Python 3 中,使用 Pytest,我们如何测试退出代码 : exit(1) and exit(0) for a python program?

Python:选择函数

python - Bokeh 条形图无法正确显示

excel - 即使第一个数字是 0 vba,也将数字格式化为两位数

Python __repr__ 用于所有成员变量