Python:防止python索引数组.列表索引必须是整数
发布时间:2020-12-20 12:00:54 所属栏目:Python 来源:网络整理
导读:到目前为止,我一直试着研究这个没有运气.我是 python的新手,所以我很抱歉,我确信这是一个简单的解决方案. local obj = { 'button1': [100,750],'button2': { 'loc': [100,1750],'returns': 2 }} 我希望一些对象具有’return’的额外属性.如果我以编程方式循
到目前为止,我一直试着研究这个没有运气.我是
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |