Создание строки для запроса jsonb с помощью psycopg2

У меня есть следующий запрос с работами в БД

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)

Однако выше строки thowing следующая ошибка

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 ответ

Вы используете "...".format()так что вы должны удвоить буквальное {} чтобы избежать их.

...
submited_jsonb @> '{{"Type":["New"]}}'
...
Другие вопросы по тегам