追加/加入psycopg2.sql.SQL的组合对象

时间:2017-11-03 14:13:08

标签: python psycopg2

我有两个变量ab,其中包含Composed([])Class)或是否填充了例如Composed([Composed([Composed([SQL('trunc('), Identifier('s0'), SQL(' * '), Literal(Decimal('1.000000')), SQL(', '), Literal(2), SQL(') AS '), Identifier('Test XXXX')])])])之类的内容。

如何在中间使用分隔符(仅在需要时)加入或扩展它们,并将它们分配给名为c的变量。

到目前为止我的尝试失败了:

c = sql.SQL(', ').join(filter(sql.Composed, [a, b]))

感觉我错过了一些微不足道的事。

编辑

这样可行,但仍然可以更好:

sql.SQL(', ').join(
    q for q in [a, b] if q.seq
)

2 个答案:

答案 0 :(得分:0)

c = sql.SQL(', ').join([a, b])会做

答案 1 :(得分:0)

sql.SQL(', ').join(
    q for q in [a, b] if q.seq
)

请注意您是否使用此代码段,因为Composed只有拥有此列表的属性才会设置。