我有一个有用的列“路线”,其值为'[{"407": "410"}, {"410": "408"}]'
。我需要选择值为408“}的所有行,所以我在使用like关键字
MySQL实现了这一点。查询如下所示
从usertable中选择路线,例如'%408"}%'
这个查询在MySQL Workbench中有效,但是当我把它带到Python它不起作用时,我的查询在Python中如下所示
(select routes from usertable where routes like
'%{1}“}%')。格式(路径)`
我看到的错误如下:
"Single '}' encountered in format string"
我确实尝试使用转义字符,例如\"
和}}
但仍然遇到相同的错误。
请建议如何解决此问题。
谢谢, 希玛
答案 0 :(得分:1)
'%{1}"}%'.format(routes)'
应为'%{1}"}}%'.format(routes)'
(请注意双}}
)。
这就是你如何设法format
不要尝试填充一个值而只返回一个}
。正如doc中所述:
花括号外的字符串部分按字面意思处理, 除了任何加倍的花括号' {{'或者'}}'被替换为 相应的单个大括号。
答案 1 :(得分:0)
如果您打算使用格式化,则应该复制}
和{
。
在您的情况下,请修改字符串,使其看起来像'%{1}"}}%').format(routes)
。这将给出您期望的结果。
至于
我确实尝试使用转义字符
您似乎试图转义用于格式化的字符,而不是那些您不想触摸的字符。
答案 2 :(得分:0)
尝试使用以下查询
select routes from usertable where routes like '%%{{\"{1}\"%%'".format(routes))
您使用的%是转义字符您可以使用%%代替%(类似于 { 使用 {{并添加\之前")。
这会对你有帮助。