I am facing an issue in Python where variables within generator expressions (such as all(...) or list comprehensions) are not accessible unless declared globally. For instance, in all(row[column] == fieldData for row in eventsList), both column and eventsList are not accessible in that context, resulting in the exception: name 'eventsList' is not defined. Does anyone know how to solve this without declaring the variables globally?
This won't work:
column = 'some_column'
fieldData = 'expected_value'
eventsList = [{'some_column': 'expected_value'}, {'some_column': 'other_value'}]
if all(row[column] == fieldData for row in eventsList):
print("All rows match")
else:
print("Not all rows match")
but will do if I append global column, fieldData, eventsList at the beggining
I am facing an issue in Python where variables within generator expressions (such as
all(...)or list comprehensions) are not accessible unless declared globally. For instance, inall(row[column] == fieldData for row in eventsList), bothcolumnandeventsListare not accessible in that context, resulting in theexception: name 'eventsList' is not defined. Does anyone know how to solve this without declaring the variables globally?This won't work:
but will do if I append
global column, fieldData, eventsListat the beggining