Home > Enterprise >  Why do I get a AttributeError in this code?
Why do I get a AttributeError in this code?

Time:12-21

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?

CodePudding user response:

"filesize" is a dictionary key, not an attribute. Use i["filesize"], not i.filesize. This is not the same.

CodePudding user response:

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
  • Related