Append/Join psycopg2.sql.SQL 的组合对象
Append/Join Composed Objects of psycopg2.sql.SQL
我有两个变量 a
和 b
,它们包含是否 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
)
c = sql.SQL(', ').join([a, b])
可以
sql.SQL(', ').join(
q for q in [a, b] if q.seq
)
请注意,如果您使用此代码片段,因为 Composed
只有在包含列表时才会设置此 属性。
我有两个变量 a
和 b
,它们包含是否 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
)
c = sql.SQL(', ').join([a, b])
可以
sql.SQL(', ').join(
q for q in [a, b] if q.seq
)
请注意,如果您使用此代码片段,因为 Composed
只有在包含列表时才会设置此 属性。