相当于python中的php isset

lor*_*per 7 python isset

这是我的Python代码:

if onerow[0]['result'] is None or not result['GetOdds'][0]['result']is None:
Run Code Online (Sandbox Code Playgroud)

result为空时,它返回此错误:

if onerow[0]['result'] is None or not result['GetOdds'][0]['result']is None:
KeyError: 0
Run Code Online (Sandbox Code Playgroud)

我想要一个类似php issetpython 的东西来检查字典项目

python中有等效的函数或类吗?

Oli*_*çon 4

该方法dict.get允许安全地从字典中获取值。

d = {'foo': 1}
d.get('foo') # 1
d.get('bar') # None
Run Code Online (Sandbox Code Playgroud)

如果恰好是有意义的值,您还可以指定要dict.get返回的默认值。None

sentinel = object()

d = {'foo': 1, 'baz': None}
d.get('bar', sentinel) # <object object at 0x...>
Run Code Online (Sandbox Code Playgroud)

在您的具体情况下,您KeyError尝试访问时会遇到一个问题onerow[0]。您可以使用 getNone来代替返回。

onerow.get(0) # None
Run Code Online (Sandbox Code Playgroud)