到目前为止,我一直试着研究这个没有运气.我是
python的新手,所以我很抱歉,我确信这是一个简单的解决方案.
local obj = {
'button1': [100, 750],
'button2': {
'loc': [100, 1750],
'returns': 2
}
}
我希望一些对象具有’return’的额外属性.如果我以编程方式循环遍历对象,我必须检查’loc’数组是否存在,如果我想访问它.
if obj[element]['loc'] is not None:
# get array w obj[element]['loc']
else:
# get array w obj[element]
问题是我收到一个错误:
# list indices must be integers
TypeError: list indices must be integers, not str
我理解为什么,这是因为’button1’是一个数组,所以python启动查找索引操作,但找到一个字符串而不是一个int.但是,我需要该括号来搜索我的下一个对象上的[‘loc’]属性.我也知道你不能用’.’运算符在python索引属性所以我不能这样做…
如果没有它试图索引前一个对象的数组,我怎么能检查属性是否存在.
最佳答案
if isinstance(obj[element], dict) and 'loc' in obj[element]:
或者,您可以使用try …除了捕获异常:
try:
# do something with obj[element]['loc']
except TypeError:
pass