“object of type 'NoneType' has no len()” error

前端 未结 3 558
感情败类
感情败类 2021-02-05 08:46

I\'m seeing weird behavior on this code:

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

for pic in pictures:
    if len(images[\'cover\']) == 0:
              


        
相关标签:
3条回答
  • 2021-02-05 09:27

    The first time you assign: images['cover'] = pic.path_thumb_l, it replaces the value of the empty list initially stored in images['cover'] with the value of pic.path_thumb_l which is None.

    Maybe your code in this line must be images['cover'].append(pic.path_thumb_l)

    0 讨论(0)
  • 2021-02-05 09:31

    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)
    
    0 讨论(0)
  • 2021-02-05 09:42

    your problem is that

    if len(images['cover']) == 0:

    checks the LENGTH of the value of images['cover'] what you meant to do is check if it HAS a value.

    do this instead:

    if not images['cover']:

    0 讨论(0)
提交回复
热议问题