我传递给构造函数的参数来自 json 对象,偶尔会出现 IndexError: list index out of range
class ApiResponse(object):
def __init__(self, a=None, b=None):
self.a = a
self.b = b
apiResponse = ApiResponse(
a = jsonResponse['foo']['bar']['a'],
b = jsonResponse['bar']['foo']['b']
)
如果索引 jsonResponse['foo']['bar']['a']
不存在,我只希望默认值为 None
在对象中设置(即,我不想将 a
的参数传递给构造函数。)
有没有一种简洁的方法来做到这一点(我的类中有大约 8 个参数,并且参数来自 json 对象的不同维度)?
最佳答案
在 Python 中,JSON 数据可以表示为字典,并且它们有一个 get
方法,如果未找到键,该方法接受默认值。你可以像这样链接它们
apiResponse = ApiResponse(
a = jsonResponse.get('foo', {}).get('bar', {}).get('a', None),
b = jsonResponse.get('bar', {}).get('foo', {}).get('b', None)
)
关于python - 在不知道索引是否存在的情况下处理访问 json 值的 pythonic 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138955/