При возникновении проблем с запросом вы можете использовать функцию mocoprify psycopg2 , чтобы увидеть, есть ли проблема с вашей строкой. Он также попытается интерполировать любые параметры, что может быть хорошей проверкой. Поскольку у меня не было объекта курсора, чтобы вызвать его, я сделал это вместо:
print psycopg2.extensions.adapt(YOUR_QUERY).getquoted()
В вашем случае это дает:
>>> import psycopg2
>>> print psycopg2.extensions.adapt(YOUR_QUERY).getquoted()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: A string literal cannot contain NUL (0x00) characters.
>>> print psycopg2.extensions.adapt('\\0').getquoted()
'\\0'
>>>
Так что вы можете видеть, что ему не нравится '\0'
. Если вы избежите обратной косой черты, как предполагает Джон Ротенштейн, psycopg2 примет запрос, но он может не дать вам того, что вы хотите, для вашего нулевого значения. Документация предполагает, что она должна работать, если вы можете разобраться с интерполяцией.