为啥报错,keyerror: 求指导。。。。。。。。。。。。。。。。。。。。。。。。。。。
json中没有叫companyid的属性。建议检查下json,其次可能层级不对,你要的companyid在json数据的另一个层级里面。你可以把整个json打印出来
可否具体一些
在读取字典中的key和value时,如 果key不存在,就会触发KeyError错误。
报错示例:
d = {'a':1,'b':2}
print(d['y'])
错误原因:键‘y’不存在
报错信息:KeyError: ‘y’
针对该问题,出现KeyError错误的原因是在Python字典中查找字典key时,该key不存在,可以采用以下几种方法解决:
python t = { 'a': '1', 'b': '2', 'c': '3', } if 'd' in t: print(t['d']) else: print('not exist')
python d = {'a': 1} d.setdefault('b', 0) # 如果b不在字典中,则添加b:0到字典
或者使用字典的get方法,示例代码如下:
python dict.get(key, default=None)
python d = {'a': 1} try: value = d['b'] except KeyError: value = None print(value)
在示例代码中,当字典中没有'b'这个key时,就会触发KeyError异常,使用try...except来捕获异常,并将value设置为None。
python import collections d = {'a': 1} d = collections.defaultdict(int, d) value = d['b'] print(value)
在示例代码中,将d设置为defaultdict(int, d),表示d中的key都会被初始化为0,这样即使在字典中没有'b'这个key,也能返回默认值0。如果想要返回None,可以使用下面的代码示例:
python d = collections.defaultdict(lambda: None, d)
需要注意的是,在使用collections.defaultdict时,如果dict内嵌套了dict,获取中间key不存在的value时,仍然会触发KeyError异常。