欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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方法?