我試圖使用格式化字符串元組的列表,其中有以下形式:使用元組列表進行字符串格式化?
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個屬性的硬編碼長度? –