python 如何优雅地处理太多使用try语句

在做爬虫时,对方网站是json格式,于是在解析详细信息时,用到以下方法:

try:
    com_name = com_names[0][u'候选人']
    duration = com_names[0][u'候选人工期']
    money = com_names[0][u'候选人报价']
    ar_name = com_names[0][u'候选人项目经理']
except:
    return None

但部分网站是没有后面‘候选人’、‘候选人工期’这些key的,例如:

clipboard.png

有一种方法是每个都try,except,一下,如:

try:
    com_name = com_names[0][u'候选人']
except:
    com_name = ''
try:
    duration = com_names[0][u'候选人工期']
except:
    duration = ''
try:
    money = com_names[0][u'候选人报价']
except:
    money = ''

但那样太繁琐,有没有优雅的方法处理以下呢?

阅读 6k
3 个回答

建议好好看看python的文档。

com_name = com_names[0].get(u'候选人’,’')

com_name = com_names[0].get(u'候选人')

dct = {'a': 1, 'c': 5}
keys = ['a', 'b', 'c', 'd']


def m(key):
    return dct.get(key, -1)

[a, b, c, d] = map(m, keys)
print(a, b, c, d)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题