使用psycopg2为jsonb查询创建字符串

时间:2017-03-01 22:06:46

标签: python string psycopg2 psql jsonb

我对db

中的工作进行了以下查询
SELECT count(*) as count
FROM data
WHERE name ='user' AND
      dt > date_trunc('month', current_timestamp) AND 
      submited_jsonb @> '{"Type":["New"]}'
GROUP BY mage, date_trunc('day', dt)

现在关注我的python版本,我必须传递名称

query = """SELECT count(*) as count
           FROM data
           WHERE name ='{0}' AND
                 dt > date_trunc('month', current_timestamp) AND 
                 submited_jsonb @> '{"Type":["New"]}'
           GROUP BY mage, date_trunc('day', dt)""".format(user)

但是上面的字符串在错误之后出现了

ERROR:root:An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line string', (1, 12))

我已将错误减少到以下行 '{“Type”:字符串中的[“New”]}'。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您正在使用"...".format(),因此您应该将文字{}加倍以逃避它们。

...
submited_jsonb @> '{{"Type":["New"]}}'
...