I want to use a .py file like a config file.
So using the {...}
notation I can create a dictionary using strings as keys but the definition order is lost in a standard python dictionary.
My question: is it possible to override the {...}
notation so that I get an OrderedDict()
instead of a dict()
?
I was hoping that simply overriding dict constructor with OrderedDict (dict = OrderedDict
) would work, but it doesn't.
Eg:
dict = OrderedDict
dictname = {
'B key': 'value1',
'A key': 'value2',
'C key': 'value3'
}
print dictname.items()
Output:
[('B key', 'value1'), ('A key', 'value2'), ('C key', 'value3')]
Here's a hack that almost gives you the syntax you want:
Edit: Someone else discovered this independently, and has published the
odictliteral
package on PyPI that provides a slightly more thorough implementation - use this instead