python 使用format的一个小问题
程序员文章站
2022-03-08 14:36:06
...
之前遇到一个场景,具体是需要使用python
操作mysql
数据库,
大概需要这种操作:
In [96]: '{%s!r}' % 'test'
Out[96]: '{test!r}'
如果不使用%
进行格式化操作,而是使用format
,在这里貌似会有点问题,
如何通过format
完成与上述代码相同的结果呢???
#报错
In [98]: '{{}!r}'.format('test')
Traceback (most recent call last):
File "<ipython-input-98-92672338fd48>", line 1, in <module>
'{{}!r}'.format('test')
ValueError: Single '}' encountered in format string
#报错
In [99]: '\{{}\!r\}'.format('test')
Traceback (most recent call last):
File "<ipython-input-99-3129657347bd>", line 1, in <module>
'\{{}\!r\}'.format('test')
ValueError: Single '}' encountered in format string
#报错
In [100]: '\{{}!r\}'.format('test')
Traceback (most recent call last):
File "<ipython-input-100-ba83055a28fe>", line 1, in <module>
'\{{}!r\}'.format('test')
ValueError: Single '}' encountered in format string
# 绕过去,但是不太正规不是嘛,我是想用`format` 解决!
In [101]: '{A!r}'.replace('A', 'test')
Out[101]: '{test!r}'
已解决该问题
原来在format
中使用{{
来进行转义的,而不是\
In [106]: '{{{}!r}}'.format('test')
Out[106]: '{test!r}'
官方文档这个也没个说明,搜半天没搜到类似的,还是请教的前同事圆满解决。。。
解决后google搜到了,链接为:python字符串中包含大括号时怎么使用sting的.format方法?