I am using python 3.9
I have a class called ImageMetaData
class ImageMetadata(BaseModel):
title: Optional[str] = None
source: Optional[str] = None
sourcesubtype: Optional[str] = None
filesize: Optional[int] = None
url: Optional[str] = None
and a function
def total_filesize(images: List[ImageMetadata]):
total = 0
try:
for i in images:
total = total + i.filesize
except BaseException as ex:
logger.error("Caught exception trying to compute total filesize for images", exc_info=True)
return total
I get an error about AttributeError:
‘dict’ object has no attribute ‘filesize’
Am I missing something?
asked Dec 20, 2021 at 22:25
reza
6,46820 gold badges92 silver badges136 bronze badges
2 Answers 2
"filesize" is a dictionary key, not an attribute. Use i["filesize"], not i.filesize. This is not the same.
answered Dec 20, 2021 at 22:28
DYZ
57.3k10 gold badges73 silver badges101 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
You should modify the function total_filesize. Try like this:
def total_filesize(images: List[ImageMetadata]):
total = 0
try:
for i in images:
total = total + i["filesize"]
except BaseException as ex:
logger.error("Caught exception trying to compute total filesize for images", exc_info=True)
return total
answered Dec 20, 2021 at 22:35
Erling Olsen
7606 silver badges16 bronze badges
Comments
lang-py