【发布时间】:2018-02-19 19:55:47
【问题描述】:
我在将format 与一个看起来像 Python 字典的字符串一起使用时遇到问题。
我想生成以下字符串:{"one":1}
如果我尝试这样做:
'{"one":{}}'.format(1)
解释器抛出一个 KeyError:
>>> a = '{"one":{}}'.format(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '"one"'
我了解问题可能与字符串包含{ 的事实有关,这可能与format 的{} 混淆。为什么会发生这种情况以及如何解决?
我知道百分比格式,但我想找到一个不涉及放弃 format() 的解决方案。
【问题讨论】:
-
请记住,比百分比格式更快:format=0.7228269569986878, %=0.03355357599866693(您的示例中
timeit.timeit的结果) -
@YaroslavSurzhikov 除非您生成大量字符串,否则我认为这并不重要。
-
如果要制作字典字符串,可以考虑
str({"one":1})。 -
注意:即使问题不相同,如果答案解释了某事的原因,it still qualifies。
-
@cᴏʟᴅsᴘᴇᴇᴅ 对我来说已经足够了。
标签: python string python-3.x string-formatting