【发布时间】:2017-06-08 20:34:23
【问题描述】:
我正在使用一个名为 lob 的包来标准化我拥有的地址数据集。在运行了几千个地址后,我收到了 504 网关错误。来自 Lob 的响应错误如下:
.......Traceback (most recent call last):
File "verify_modified_v2.py", line 82, in <module>
zip_code=row['zip_code'],
File "C:\Users\******\Anaconda2\lib\site-packages\lob\resource.py", line 123, in create
response = requestor.request('post', cls.endpoint, params)
File "C:\Users\******\Anaconda2\lib\site-packages\lob\api_requestor.py", line 84, in request
requests.post(lob.api_base + url, auth=(self.api_key, ''), data=data, files=files, headers=headers)
File "C:\Users\******\Anaconda2\lib\site-packages\lob\api_requestor.py", line 27, in parse_response
resp.content, resp.status_code, resp)
lob.error.APIConnectionError: {
"error": {
"message": "GATEWAY_TIMEOUT",
"status_code": 504
}
}
我已尝试排除此错误,以便我的代码可以反复联系 lob,直到它可以通过而没有网关错误:
for idx, row in enumerate(input_csv):
try:
verifiedAddress = lob.USVerification.create(
primary_line=row['primary_line'],
secondary_line=row['secondary_line'],
city=row['city'],
state=row['state'],
zip_code=row['zip_code'],
)
if verifiedAddress.deliverability in success_deliverabilities:
success_csv.writerow({
'primary_line': verifiedAddress.primary_line,
'secondary_line': verifiedAddress.secondary_line,
'urbanization': verifiedAddress.urbanization,
'last_line': verifiedAddress.last_line,
'deliverability': verifiedAddress.deliverability,
'identifier': row['identifier'],
'status': row['2']
})
else:
failure_csv.writerow({
'primary_line': row['primary_line'],
'secondary_line': row['secondary_line'],
'city': row['city'],
'state': row['state'],
'zip_code': row['zip_code'],
'deliverability': verifiedAddress.deliverability,
'identifier': row['identifier'],
'status': row['2']
})
# Print success
sys.stdout.write('.')
sys.stdout.flush()
# New lines for larger csv's
if idx % 10 is 9:
sys.stdout.write('\n')
sys.stdout.flush()
except lob.error.APIConnectionError:
print "caught error"
网关错误似乎无法“排除”;有人对解决这个问题有任何想法吗?
我的最终目标是:
- 绕过错误。
- 记录错误。
- 继续 csv 文件的下一行。
谢谢。
【问题讨论】:
-
在
try之后不需要except吗? -
例外在代码块的底部
-
嗯,我的眼睛一定在捉弄我,我可以发誓说
finally。无论如何,你在看什么? -
@ballpointben 我有点不知所措。我不确定如何格式化我的代码,以便当我收到来自 lob 的此响应时,它将继续运行:
lob.error.APIConnectionError: { "error": { "message": "GATEWAY_TIMEOUT", "status_code": 504 } } -
将该行更改为
except Exception:;现在会发生什么?
标签: python python-2.7 exception lob http-status-code-504