>>> 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.