>>> line = "key:value" >>> dict(list(line.split(":"))) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: dictionary update sequence element #0 has length 3; 2 is required >>> dict([line.split(":")]) {'key': 'value'} >>> list(line.split(":")) ['key', 'value'] >>> [line.split(":")] [['key', 'value']]dict() expects a list of key-value pairs. If you use list(), you'll just have a list of strings, and not a list of key-value pairs.