首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕获botocore的NoSuchKey异常?

如何捕获botocore的NoSuchKey异常?
EN

Stack Overflow用户
提问于 2017-03-23 12:09:00
回答 4查看 59K关注 0票数 170

我试图编写“好的”python并捕获一个S3 --没有这样的关键错误:

代码语言:javascript
复制
session = botocore.session.get_session()
client = session.create_client('s3')
try:
    client.get_object(Bucket=BUCKET, Key=FILE)
except NoSuchKey as e:
    print >> sys.stderr, "no such key in bucket"

但是NoSuchKey没有被定义,而且我无法将它跟踪到我需要定义的导入。

e.__class__botocore.errorfactory.NoSuchKey,但是from botocore.errorfactory import NoSuchKey给出了一个错误,from botocore.errorfactory import *也不起作用,我不想捕获一个通用错误。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-03-23 14:15:08

代码语言:javascript
复制
from botocore.exceptions import ClientError

try:
    response = self.client.get_object(Bucket=bucket, Key=key)
    return json.loads(response["Body"].read())
except ClientError as ex:
    if ex.response['Error']['Code'] == 'NoSuchKey':
        logger.info('No object found - returning empty')
        return dict()
    else:
        raise
票数 201
EN

Stack Overflow用户

发布于 2017-06-28 20:20:37

使用botocore 1.5,客户端句柄似乎公开了异常类:

代码语言:javascript
复制
session = botocore.session.get_session()
client = session.create_client('s3')
try:
    client.get_object(Bucket=BUCKET, Key=FILE)
except client.exceptions.NoSuchKey as e:
    print >> sys.stderr, "no such key in bucket"
票数 97
EN

Stack Overflow用户

发布于 2018-01-31 19:03:35

在boto3中,我能够访问资源的元客户机中的异常。

代码语言:javascript
复制
import boto3

s3 = boto3.resource('s3')
s3_object = s3.Object(bucket_name, key)

try:
    content = s3_object.get()['Body'].read().decode('utf-8')
except s3.meta.client.exceptions.NoSuchKey:
    print("no such key in bucket")
票数 53
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42975609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档