当前位置: 首页 > 面试题库 >

str.format()引发KeyError

应子真
2023-03-14
问题内容

以下代码引发KeyError异常:

addr_list_formatted = []
addr_list_idx = 0

for addr in addr_list: # addr_list is a list
    addr_list_idx = addr_list_idx + 1
    addr_list_formatted.append("""
        "{0}"
        {
        "gamedir"  "str"
        "address"  "{1}"
        }
    """.format(addr_list_idx, addr))

为什么?

我正在使用Python 3.1。


问题答案:

问题是您那里的那些{}字符没有指定格式化键。您需要将它们加倍,因此将代码更改为:

addr_list_formatted.append("""
    "{0}"
    {{
    "gamedir"  "str"
    "address"  "{1}"
    }}
""".format(addr_list_idx, addr))


 类似资料:
  • 本文向大家介绍Python中str.format()详解,包括了Python中str.format()详解的使用技巧和注意事项,需要的朋友参考一下 1. str.format 的引入 在 Python 中,我们可以使用 + 来连接字符串,在简单情况下这种方式能够很好的工作。但是当我们需要进行复杂的字符串连接时,如果依然使用 + 来完成,不仅会使代码变得晦涩难懂,还会让代码变得难以维护,此时这种方式

  • 问题内容: 我想通过实现以下目标: 我能够做到的唯一方法是: 现在,这个示例以及我真正拥有的是一个长长且混乱的字符串,因此我想将切片放入。我已经研究了docs,但无法找出正确的语法。我的问题是:是否可以在替换字段中切片字符串? 问题答案: 不可以,您无法将切片应用于替换字段中的字符串。 您需要参考Format Specification Mini- Language ;它定义了什么 是 可能的。这

  • 问题内容: 您可以使用该函数显示以零开头的整数吗? 输入示例: 所需的输出: 我知道和基于的格式(例如)都可以实现这一点。但是,我希望使用一种解决方案,以保持我的代码干净且一致(我还使用datetime属性格式化字符串),并扩展我对Format Specification Mini- Language的了解 。 问题答案: “{0:0>3}”.format(1) ‘001’ >>> “{0:0>3

  • 问题内容: 我遇到了一个非常简单的问题,无法解决这个问题。 我正在使用在替换中传递的用于该格式的函数中创建一个字符串。我想创建字符串并使用值将其格式化(如果已传递),否则将其留空。 防爆 应该回来 而不是抛出一个(如果我们什么都不做会发生什么)。 令人尴尬的是,对于这个问题,我什至无法提出一个优雅的解决方案。我想我可以通过不使用来解决此问题,但如果可能的话,我宁愿使用内置的(主要是我想要的功能)。

  • 问题内容: 以下代码段: 抛出KeyError: 有人知道为什么吗? 问题答案: 该代码中有许多未转义的花括号。Python认为所有花括号都是占位符,并正在尝试替换所有花括号。但是,您只提供了一个值。 我希望您不希望所有的花括号都成为占位符,因此您应该将不希望使用的花括号加倍。如: 我还随意使用字符串文字的三引号,因此您无需在每行末尾使用反斜杠。

  • 问题内容: 我只想从mongodb信息中处理对象,但是当我执行此方法时,要使一些对象成为对象,但总是返回该错误java.util.NoSuchElementException。 问题答案: 可能的问题是,您在一个循环中调用了3次方法。您应该调用一次并将其结果存储在变量中,因为它会检索迭代中的下一个元素

  • 问题内容: 我正在尝试使用IntelliJ 12.1.3使用JPA测试Hibernate 4.2.1.Final,但出现以下错误。 一切似乎都设置正确(我让IntelliJ生成了映射),由于我对Hibernate和JPA的经验为零,所以我无所适从。 为什么要启用NPE? 主类: 错误: Persistance.xml 问题答案: 该消息向我表明它无法连接到数据库。仔细检查您的连接字符串,并确保您的

  • 我正在使用gson将json字符串转换为Java对象。result2的值与Result1的值完全相同。(从调试器复制;添加反斜杠) 转换Result1:com.google.gson.JsonSyntaxException时引发以下异常:com.google.gson.stream.MalFormedJsonException:第1行第170列需要EOF 转换result2工作良好。 json字符