我试图使用格式化字符串元组的列表,其中有以下形式:使用元组列表进行字符串格式化?
formulas_and_labels = [('formula1', 'label1'),
('formula2', 'label2')]
这应该被用于格式化以下字符串:
SQL_string = """SELECT
{} AS "{}",
{} AS "{}"
FROM
schema.table""".format(*formulas_and_labels)
我明白这会产生一个IndexError: tuple index out of range
,因为(*formulas_and_labels)
只包含两个元素(元组),而字符串需要4个元素(4x {})。
我设法先拆包使用
formulas_and_labels_unpacked = [v for t in formulas_and_labels for v in t]
(发现here)列表,找到一个解决办法。
但是,我想知道是否存在一种更直接的方式来直接使用.format(**formulas_and_labels)
或.format(*el) for el in formulas_and_labels)
之类的东西直接“解开”列表和元组?
您的预期输出是什么? –
是您的最终查询应该是'SELECT'子句中的2个属性的硬编码长度? –