Open In App

Cannot Unpack Non-iterable Nonetype Objects in Python

Last Updated : 08 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

The “Cannot Unpack Non-iterable NoneType Objects” error is a common issue in Python that occurs when attempting to unpack values from an object that is either None or not iterable. This error often arises due to incorrect variable assignments, function returns, or unexpected results from external sources. In this article, we will explore some code examples that demonstrate situations leading to this error and how to handle them effectively.

Cannot Unpack Non-iterable Nonetype Objects in Python

Below, are the situations of Cannot Unpack Non-iterable Nonetype Objects in Python.

Unpacking NoneType Object

In this example, the get_values the function does not have a return statement, resulting in the function returning None. When attempting to unpack values from None, the error occurs.

Python3




def get_values():
    # Function without a return statement
    return
  
# Attempting to unpack values from the result
result = get_values()
try:
    a, b = result  # Raises "Cannot Unpack Non-iterable NoneType Objects" error
except TypeError as e:
    print(f"Error: {e}")


Output

Error: cannot unpack non-iterable NoneType object

Incorrect Function Return

In this example, below code defines a function get_values that incorrectly returns a non-iterable value (integer 42). When attempting to unpack the result into variables a and b, the code raises a “Cannot Unpack Non-iterable NoneType Objects” error, as the returned value is not iterable.

Python3




def get_values():
    # Incorrectly returning a non-iterable value
    return 42
  
# Attempting to unpack values from the result
result = get_values()
try:
    a, b = result  # Raises "Cannot Unpack Non-iterable NoneType Objects" error
except TypeError as e:
    print(f"Error: {e}")


Output

Error: cannot unpack non-iterable int object

Unexpected API Response

In this example, below code defines a function fetch_data that makes an API request to “https://example.com/api/data” and returns the JSON response. If the API request fails (status code not 200), it returns None. The subsequent attempt to unpack values from the API response into variables a and b may raise a “Cannot Unpack Non-iterable NoneType Objects” error if the API response is None.

Python3




import requests
  
def fetch_data():
    # Making an API request that fails
    response = requests.get("https://example.com/api/data")
    if response.status_code != 200:
        return None
  
    return response.json()
  
# Attempting to unpack values from the API response
data = fetch_data()
try:
    a, b = data  # Raises "Cannot Unpack Non-iterable NoneType Objects" error
except TypeError as e:
    print(f"Error: {e}")


Output

Error: cannot unpack non-iterable NoneType object

Handling NoneType Before Unpacking

In this example, below code defines a function get_values without a return statement, resulting in it returning None. To prevent a “Cannot Unpack Non-iterable NoneType Objects” error when attempting to unpack values, the code checks if the result is not None before performing the unpacking.

Python3




def get_values():
    # Function without a return statement
    return
  
# Handling NoneType before unpacking
result = get_values()
if result is not None:
    a, b = result
else:
    print("Error: Unable to unpack, result is None")


Output

Error: Unable to unpack, result is None

Conclusion

In Conclusion , The “Cannot Unpack Non-iterable Nonetype Objects” error is a common error that is faced in Python programming, commonly caused by functions returning None instead of iterable objects or by erroneous variable assignments. Coders can avoid this issue and guarantee that their Python code runs smoothly by carefully inspecting the return values, and proper error handling.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads