视觉智能平台AttributeError: 'AttributeError' object has no attribute 'message'
按照示例代码写的,一直报这个错,可能是什么原因呀?
代码:
recogcolor_client = imagerecog20190930Client(open_api_models.Config(access_key_id=access_key_id,
access_key_secret=access_key_secret,
endpoint='imagerecog.cn-shanghai.aliyuncs.com'))
def call_recogscene(img_url):
recogcolor_request = imagerecog_20190930_models.RecognizeImageColorRequest(url=img_url)
runtime = util_models.RuntimeOptions()
try:
ret = recogcolor_client.recognize_image_color_with_options(recogcolor_request, runtime)
return [(i.color, i.percentage, i.label) for i in ret.body.data.colortemplatelist]
except Exception as error:
print(img_url, UtilClient.assert_as_string(error.message))
return img_url
改过error这部分可以跑通,但是,会报'RecognizeImageColorResponseBodyData' object has no attribute 'colortemplatelist' 的错误,我查了文档,返回值应该是有这项的呀
这个错误可能是由于在创建imagerecog20190930Client
对象时,传入的参数不正确导致的。请检查以下几点:
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException, ServerException
from aliyunsdkimagerecog.request.v20190930 import RecognizeColorRequest
import open_api_models
检查您的access_key_id
和access_key_secret
是否正确。确保它们是有效的阿里云账户凭据。
检查您的endpoint
是否正确。根据您的需求,选择正确的地域和服务名称。例如,如果您要使用上海地区的图像识别服务,可以将endpoint
设置为imagerecog.cn-shanghai.aliyuncs.com
。
如果以上都没有问题,您可以尝试使用以下示例代码来创建imagerecog20190930Client
对象:
recogcolor_client = imagerecog20190930Client(open_api_models.Config(access_key_id=access_key_id,
access_key_secret=access_key_secret,
endpoint='imagerecog.cn-shanghai.aliyuncs.com'))
这个错误可能是由于返回的响应数据中没有colortemplatelist
属性导致的。你可以尝试在访问ret.body.data.colortemplatelist
之前,先检查ret.body.data
是否存在,然后再访问colortemplatelist
属性。修改后的代码如下:
recogcolor_client = imagerecog20190930Client(open_api_models.Config(access_key_id=access_key_id,
access_key_secret=access_key_secret,
endpoint='imagerecog.cn-shanghai.aliyuncs.com'))
def call_recogscene(img_url):
recogcolor_request = imagerecog_20190930_models.RecognizeImageColorRequest(url=img_url)
runtime = util_models.RuntimeOptions()
try:
ret = recogcolor_client.recognize_image_color_with_options(recogcolor_request, runtime)
if hasattr(ret.body.data, 'colortemplatelist'):
return [(i.color, i.percentage, i.label) for i in ret.body.data.colortemplatelist]
else:
print("Error: ret.body.data does not have attribute 'colortemplatelist'")
return img_url
except Exception as error:
print(img_url, UtilClient.assert_as_string(error.message))
return img_url
这样,当ret.body.data
不存在colortemplatelist
属性时,程序会输出错误信息并返回img_url
。
message对象没属性,你直接使用我们给的示例代码调用看下呢?
https://help.aliyun.com/zh/viapi/use-cases/color-identification?spm=a2c4g.11186623.0.i24
print(response.body.data.color_template_list)
此回答整理自钉群“阿里云视觉智能开放平台咨询1群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。