我有一个usertable,它的“routes”列的值如下 '[{"407": "410"}, {"410": "408"}]'
. 我需要选择所有值为408“}的行,所以我在mysql中使用like关键字来实现这一点。查询如下所示:select routes from usertable where routes like '%408"}%'
这个查询在mysql workbench中工作,但当我将其转换为python时,它不工作,我的查询在python中如下所示 (select routes from usertable where routes like
“%{1}”}%')。格式(路由)`
我看到的错误如下:
"Single '}' encountered in format string"
我试过使用转义字符,例如。 \"
以及 }}
但仍然得到同样的错误。
请建议如何解决这个问题。
谢谢,西玛
3条答案
按热度按时间9bfwbjaz1#
'%{1}"}%'.format(routes)'
应该是'%{1}"}}%'.format(routes)'
(注意双精度)}}
).这就是你能说服别人的方法
format
不是尝试填充一个值,而是只返回一个值}
. 如文件所述:字符串中花括号外的部分按字面意义处理,除了任何双花括号{{'或}}都被相应的单花括号替换。
vsaztqbk2#
尝试使用以下查询
您使用的%是转义字符,您可以使用%%for而不是%(类似地,也可以使用%%for而不是{use{{and add\before”)。
这对你有帮助。
fwzugrvs3#
你应该复制
}
以及{
如果你想使用格式。在您的情况下,编辑字符串,使其看起来像这样
'%{1}"}}%').format(routes)
. 这会给你预期的结果。至于
我试过用转义符
似乎你试图转义的字符,你使用的格式,而不是那些你不想碰。