What this error means

You tried to use len() on None. The len() function only works on sequences (lists, strings, tuples) and collections (dictionaries, sets). None is not a sequence.

Common causes

  • A function returned None instead of a list or other sequence.
  • You forgot to return a value from a function.
  • A variable was set to None when you expected a list or string.

Example that causes the error

def get_items():
    items = [1, 2, 3]
    # Forgot to return items

result = get_items()
length = len(result)  # TypeError: result is None

How to fix it

Make sure your function returns the value:

def get_items():
    items = [1, 2, 3]
    return items  # Return the list

result = get_items()
length = len(result)  # OK: result is [1, 2, 3]

Check for None before using len()

result = some_function()
if result is not None:
    length = len(result)
    print(f"Length: {length}")
else:
    print("Result is None, cannot get length")

Use try-except

result = some_function()
try:
    length = len(result)
except TypeError:
    print("Cannot get length of None")
    length = 0  # Default value