Обратная косая черта - это специальный символ в Python.
Если поставить одну обратную косую черту, а затем любой другой символ, то это означает, что какой-то другой символ в финальной строке будет таким, как это происходит в вашем случае.
Чтобы убедиться, что ваша последняя строка содержит обратную косую черту, а не какой-либо странный символ, необходимо поместить два последовательных символа обратной косой черты следующим образом.
Это будет именно то, что вы хотите.Вы можете прочитать больше об этом здесь .
Также, чтобы устранить путаницу с обратными слешами в конечной строке, это просто визуальное недопонимание, как вы можете видеть ниже, использование двух обратных косых черт неприводят к двум обратным слешам в конечной строке.
Вторая ошибка в приведенном выше коде - использование функции кортежа, которая возвращает объект кортежа вместо строкиприложенная форма списка.Следующий код должен работать для вас.
def customTuple(arr):
arr = ["'"+item+"'" for item in arr]
s = '('+','.join(arr)+')'
return s
myList = ['PREFIX\\000\\000923', 'PREFIX\\000\\000CS3'] # <- strings I have troubles with
myTuple = customTuple(myList)
query = "SELECT * FROM public.items WHERE name IN {}".format(myTuple)
print(query)