python 使用format的一个小问题

版权声明:本博客内容为学习过程中的一些记录,大部分转载内容已标明转载,部分内容如有因疏忽未注明请与我联系,转载原创内容请注明链接,谢谢! https://blog.csdn.net/xiaodongxiexie/article/details/80257008

之前遇到一个场景,具体是需要使用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方法?

猜你喜欢

转载自blog.csdn.net/xiaodongxiexie/article/details/80257008