方法返回dict,检查是否存在键returns KeyError:0

2024-04-28 12:42:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习Python,努力把事情做好。我在一些基本的东西上遇到了困难。我能帮忙吗?在

我正在使用os.walk查找我的(Jekyll)降价文件,通过python-frontmatter加载它们的frontmate,并收集每个文件中可能存在或不存在的feature_图像属性列表。在

根据图书馆的文档,这本书可以作为字典来使用,我的google上说我应该可以使用

if "property" in dict:

构造来查看属性键是否在dict中定义,但是当我尝试时,我得到了一个“KeyError:0”错误。在

这就是我所做的:

^{pr2}$

当我回来的时候我在这里写什么

Traceback (most recent call last):
  File "./test.py", line 14, in <module>
    if "feature_image" in post:
  File "/usr/local/lib/python3.5/site-packages/frontmatter/__init__.py", line 124, in __getitem__
    return self.metadata[name]
KeyError: 0

谢谢你的帮助!在


Tags: 文件inpyif属性osline事情
2条回答

如果您不确定dictionary中的值是什么,那么最好的选择是使用dict.get("key", "default value"),如果默认值不在dictionary中,此方法将返回None。在布尔上下文中None == False。在

在您的情况下,它看起来像:

if post.get("feature_image"):
    # do smth

简短回答使用:

if "feature_image" in post.keys(): #see the keys function?

更长的答案:

Post类没有提供一个优contain_uu方法,因此python尝试使用Post.\ugetitem_uu使用iterator协议迭代它,然后出现Key 0异常

要了解更多信息,请尝试查找python是如何迭代的:)

相关问题 更多 >