格式字符串中遇到单个'}'

时间:2018-04-10 09:42:25

标签: python mysql

我有一个有用的列“路线”,其值为'[{"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"

我确实尝试使用转义字符,例如\"}}但仍然遇到相同的错误。

请建议如何解决此问题。

谢谢, 希玛

3 个答案:

答案 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))

您使用的转义字符您可以使用%%代替(类似于 { 使用 {{并添加\之前")。

这会对你有帮助。

相关问题