У меня есть файл с столбцами "маршруты", который имеет такие значения, как '[{"407": "410"}, {"410": "408"}]'
. Мне нужно выбрать все строки, которые имеют значения 408 "}, поэтому я использую для этого ключевое слово как ключевое слово в MySQL. Запрос выглядит следующим образом: выберите маршруты из usertable, где такие маршруты, как '%408"}%'
Этот запрос работает в MySQL Workbench, но когда я беру это, чтобы Python не работал, мой запрос выглядит как ниже в Python (select routes from usertable where routes like
"% {1}"}% '). Format (routes)'
Ошибка, которую я вижу, выглядит следующим образом:
"Single '}' encountered in format string"
Я попытался использовать escape-символы, то есть \"
и }}
но все равно получаю ту же ошибку.
Пожалуйста, предложите, как это исправить.
Спасибо, Seema
'%{1}"}%'.format(routes)'
должен быть '%{1}"}}%'.format(routes)'
(обратите внимание на double }}
).
так вы можете конформировать format
чтобы не попробовать и не заполнить значение, а вернуть только один }
. как указано в документе:
Части строки за пределами фигурных скобок обрабатываются буквально, за исключением того, что любые удвоенные фигурные скобки '{{' или '}}' заменяются соответствующей одной фигурной скобкой.
Попробуйте использовать следующий запрос
select routes from usertable where routes like '%%{{\"{1}\"%%'".format(routes))
%, Который вы используете, является escape-символом, вы можете использовать %% вместо % (аналогично вместо { use {{ и add\before ").
Это поможет вам.
Вы должны дублировать }
и {
если вы собираетесь использовать форматирование.
В вашем случае отредактируйте свою строку так, чтобы она выглядела так: '%{1}"}}%').format(routes)
. Это даст ожидаемые результаты.
Что касается
Я попытался использовать escape-символы
Кажется, вы пытались избежать символов, которые вы используете для формата, а не тех, кого вы не хотите трогать.