当密钥不存在时,为什么没有收到KeyError?

RJL

在以下测试数据中,我试图将键“ x”的值附加到列表ls中。我的问题是为什么在循环数据的第一行时没有得到KeyError。显然,第一行不包含键“ x”。最初,我以为我必须使用Try / Except来避免在遍历数据时出错,但是似乎不需要Try / Except。

谁能帮助我了解为什么这里没有生成KeyError?

data = [{u'xyz': []},
        {u'xyz': [{u'x' : 2,
                   u'y' : 3, 
                   u'z' : 4}]}]

ls = []

for item in data:
    ddd = item['xyz']
    print ddd

    for d in ddd:
        ls.append(d['x'])

ls

输出:

[]
[{u'y': 3, u'x': 2, u'z': 4}]

[2]
TessellatingHeckler

一无所有的循环不会运行:

>>> for item in []:
...     print item
...
>>>

所以

data = [{u'xyz': []},
            ...       ]


# first time through
for item in data:
    ddd = item['xyz']

    # ddd is an empty list

    for d in ddd:
        # this doesn't run, therefore no KeyError
        ls.append(d['x'])

如果要捕获一个KeyError,则需要Try / Except ;如果要避免一个KeyError,则可以执行以下任一操作:

if 'x' in d:  # test if 'x' is a key in d

or

d.get('x')    # returns the value, or None

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当密钥不存在时,为什么没有收到KeyError?

来自分类Dev

Java DynamoDB-仅在密钥不存在时插入(没有映射器)

来自分类Dev

为什么在RequestNavigate到不存在的视图上没有错误

来自分类Dev

为什么我会收到带有 sqlalchemy 元数据的现有表的“关系不存在”错误?

来自分类Dev

密钥不存在时的powershell错误

来自分类Dev

为什么运行“ ifconfig”时不存在“ 10.0.2.2”?

来自分类Dev

当我尝试从HashSet中删除不存在的元素时,为什么它没有给出运行时错误?

来自分类Dev

当我尝试从不存在的HashSet中删除元素时,为什么它没有给出运行时错误?

来自分类Dev

为什么现有文件不存在?

来自分类Dev

Scrapy:如果密钥存在,为什么我会收到KeyError?

来自分类Dev

为什么我收到一个错误,指出DocumentElement不存在?

来自分类Dev

为什么会收到“名称x在当前上下文中不存在”的信息?

来自分类Dev

如果 show 方法不存在,为什么我不会收到错误消息?

来自分类Dev

为什么我收到错误消息“立方体不存在或尚未处理。'

来自分类Dev

为什么CopyOnWriteLinkedList不存在?

来自分类Dev

为什么XMLHttpRequest responseText不存在?

来自分类Dev

为什么WKWebView委托不存在?

来自分类Dev

为什么在迭代过程中从映射中删除不存在的元素有时只会崩溃?

来自分类Dev

为什么在创建带有entityframework核心的内存sqlite数据库时表不存在?

来自分类Dev

没有权限或不存在

来自分类Dev

密钥存在时的KeyError

来自分类Dev

为什么当文件存在时for循环中的`zip`起作用,而当文件不存在时为什么不起作用?

来自分类Dev

为什么当文件存在时for循环中的`zip`起作用,而当文件不存在时为什么不起作用?

来自分类Dev

为什么当文件存在时for循环中的zip起作用,而当文件不存在时为什么不起作用?

来自分类Dev

.NET Core 3 EF中不存在没有联合实体的MN关系,也没有关于为什么的文档

来自分类Dev

如果要求的密钥不存在,应该抛出什么异常?

来自分类Dev

尝试使用RSA解密时不存在密钥

来自分类Dev

密钥不存在时地图出现问题

来自分类Dev

尝试使用RSA解密时,密钥不存在

Related 相关文章

  1. 1

    当密钥不存在时,为什么没有收到KeyError?

  2. 2

    Java DynamoDB-仅在密钥不存在时插入(没有映射器)

  3. 3

    为什么在RequestNavigate到不存在的视图上没有错误

  4. 4

    为什么我会收到带有 sqlalchemy 元数据的现有表的“关系不存在”错误?

  5. 5

    密钥不存在时的powershell错误

  6. 6

    为什么运行“ ifconfig”时不存在“ 10.0.2.2”?

  7. 7

    当我尝试从HashSet中删除不存在的元素时,为什么它没有给出运行时错误?

  8. 8

    当我尝试从不存在的HashSet中删除元素时,为什么它没有给出运行时错误?

  9. 9

    为什么现有文件不存在?

  10. 10

    Scrapy:如果密钥存在,为什么我会收到KeyError?

  11. 11

    为什么我收到一个错误,指出DocumentElement不存在?

  12. 12

    为什么会收到“名称x在当前上下文中不存在”的信息?

  13. 13

    如果 show 方法不存在,为什么我不会收到错误消息?

  14. 14

    为什么我收到错误消息“立方体不存在或尚未处理。'

  15. 15

    为什么CopyOnWriteLinkedList不存在?

  16. 16

    为什么XMLHttpRequest responseText不存在?

  17. 17

    为什么WKWebView委托不存在?

  18. 18

    为什么在迭代过程中从映射中删除不存在的元素有时只会崩溃?

  19. 19

    为什么在创建带有entityframework核心的内存sqlite数据库时表不存在?

  20. 20

    没有权限或不存在

  21. 21

    密钥存在时的KeyError

  22. 22

    为什么当文件存在时for循环中的`zip`起作用,而当文件不存在时为什么不起作用?

  23. 23

    为什么当文件存在时for循环中的`zip`起作用,而当文件不存在时为什么不起作用?

  24. 24

    为什么当文件存在时for循环中的zip起作用,而当文件不存在时为什么不起作用?

  25. 25

    .NET Core 3 EF中不存在没有联合实体的MN关系,也没有关于为什么的文档

  26. 26

    如果要求的密钥不存在,应该抛出什么异常?

  27. 27

    尝试使用RSA解密时不存在密钥

  28. 28

    密钥不存在时地图出现问题

  29. 29

    尝试使用RSA解密时,密钥不存在

热门标签

归档