Python ValueError: too many values to unpack [duplicate]

self.materials is a dict and by default you are iterating over just the keys (which are strings).

Since self.materials has more than two keys*, they can’t be unpacked into the tuplek, m“, hence the ValueError exception is raised.

In Python 2.x, to iterate over the keys and the values (the tuplek, m“), we use self.materials.iteritems().

However, since you’re throwing the key away anyway, you may as well simply iterate over the dictionary’s values:

for m in self.materials.itervalues():

In Python 3.x, prefer dict.values() (which returns a dictionary view object):

for m in self.materials.values():

Leave a Comment