我正在使用通过导入/解析JSON创建的jython中的字典。使用某些部分,我会看到以下消息:
TypeError: str indices must be integers
当我执行以下操作时会发生这种情况:
if jsondata['foo']['bar'].lower() == 'baz':
...
jsondata
如下所示:{'foo': {'bar':'baz'} }
这是什么意思,我该如何解决?
最佳答案
您需要先从dict中获取数据,然后再检查dict的类型以及dict中是否存在“ z”。
>>> jsondata = {'a': '', 'b': {'z': True} }
>>> for key in jsondata:
... if type(jsondata[key]) is dict and 'z' in jsondata[key].keys() and jsondata[key]['z'] is True:
... print 'yes'
...
yes
>>>
或更短的dict.get
>>> jsondata = {'a': '', 'b': {'z': True}, 'c' :{'zz':True}}
>>> for key in jsondata:
... if type(jsondata[key]) is dict and jsondata[key].get('z',False):
... print 'yes'
...
yes
>>>
关于python - “str索引必须为整数”是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2720326/