Attributes come in as a list of dicts with strings as keys and values. Implicitly casting each result as a tuple causes the code to split the key string into it's characters. This yields a list of characters, the first two of which are placed into the variables "attr_name" and "attr_value". This is not only wrong, but because keys tend to be more than 2 characters, the net result is: "ValueError: too many values to unpack"