【发布时间】:2017-04-10 01:04:20
【问题描述】:
我有一个抓取信息并将其保存到数据库的网络爬虫。我使用以下代码来保存数据。
try:
base['vevo']['url']
except:
base['vevo']['url'] = "NotGiven"
try:
base['vevo']['viewsLastWeek']['data']['time']
except:
base['vevo']['viewsLastWeek']['data']['time'] = '2199-01-01'
现在这通常可以正常工作,但有时数据流根本不会为base['vevo'] 返回任何信息。这打破了上面的 dict add 并说 KeyError 'vevo'.
我一直在浏览其他 stackoverflow 问题,但我找不到任何引用一次添加多个键的内容,就像我正在尝试做的那样。我尝试过使用 base.append('key'),尝试过 base.get(),但找不到有关如何将其用于多个键的参考。关于如何绕过它的任何想法?
【问题讨论】:
-
你试过
get()的默认值吗,例如:base.get('vevo', {}) -
我会为 {} 放什么?这对 ['vevo']['viewsLastWeek']['data']['time'] 有什么作用?我不完全了解如何使用base.get(),但我觉得这可能是解决方案
-
你也可以再试一次,除了像 try: base['vevo'] except base['vevo']="not Found vevo"
-
base.get(key, defaultvalue) 表示如果key不存在则key有这个defaultvalue
-
我是否必须继续为树上的每个键分配“NotFound”?类似于
base['vevo']['viewsLastWeek'] = "NotFound",然后是base['vevo']['viewsLastWeek']['data'] = "NotFound"
标签: python dictionary web-scraping data-analysis