列出KeyError Python

时间:2016-10-04 18:43:53

标签: python json for-loop keyerror

我正在尝试附加一个包含Glassdoor API的值的列表。

当我从这个API得到回复时,我得到的信息包括公司名称,评级,首席执行官,更多信息,最后如果公司归母公司所有,我也会得到。

我的问题是当我在列表中附上所有这些信息时,如果我从API获得响应的公司没有母公司,我不希望它跳过提取其他相关数据,如姓名,首席执行官等。我希望它打印出公司回复的可用数据,然后母公司打印NA。

我从API获得回复的每家公司可能在可用数据中有不同的长度/变化。

例如:

comp_info.append(data['response']['employers'][0]['name'])

这就是我想要实现的目标,Apple没有母公司,而LSI公司也是如此。我不确定如何处理这个问题?

[APPLE,Tim Cook,4.5,N / A,计算机硬件] [LSI Corporation,Some Guy,4.6,Avago Technologies,Computer Hardware]

3 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的问题,但是Python有一个概念"更好地请求宽恕而不是许可"这可能会有所帮助:

try:
    comp_info.append(data['response']['employers'][0]['name'])
except KeyError:
    comp_info.append("N/A")
    # or print ("N/A")

如果您正在寻找与此不同的处理方式,请澄清您的问题。

答案 1 :(得分:0)

如果我理解正确的话:

comp_info.append(data['response']['employers'][0].get('name', 'N/A'))

答案 2 :(得分:0)

comp_info.append(data['response']['employers'][0].get('parentEmployer', 'N/A'))