pythonweb2py

"object of type 'NoneType' has no len()" error


I'm seeing weird behavior on this code:

images = dict(cover=[],second_row=[],additional_rows=[])

for pic in pictures:
    if len(images['cover']) == 0:
        images['cover'] = pic.path_thumb_l
    elif len(images['second_row']) < 3:
        images['second_row'].append(pic.path_thumb_m)
    else:
        images['additional_rows'].append(pic.path_thumb_s)

My web2py app gives me this error:

if len(images['cover']) == 0:
TypeError: object of type 'NoneType' has no len()

I can't figure out what's wrong in this. Maybe some scope issue?


Solution

  • You assign something new to images['cover']:

    images['cover'] = pic.path_thumb_l
    

    where pic.path_thumb_l is None at some point in your code.

    You probably meant to append instead:

    images['cover'].append(pic.path_thumb_l)