如何将OrderedDict转换为普通字典但保持与OrderedDict相同的顺序?

时间:2016-12-13 02:57:25

标签: python dictionary ordereddictionary

当我使用dict()时,订单已更改!如何获得dict遵循OrderedDict()的顺序?

>>> from collections import OrderedDict
>>> OrderedDict([('method', 'constant'), ('data', '1.225')])
OrderedDict([('method', 'constant'), ('data', '1.225')])
>>> dict(OrderedDict([('method', 'constant'), ('data', '1.225')]))
{'data': '1.225', 'method': 'constant'}
>>>

我想获得的是与OrderedDict()相同的订单:

{'method': 'constant','data': '1.225'}

如果无法转换,如何解析OrderedDict,如

for key, value in OrderedDict....

1 个答案:

答案 0 :(得分:2)

如果您只想在没有dict包装的情况下按顺序打印OrderedDict,则可以使用json

>>> import json
>>> od = OrderedDict([('method', 'constant'), ('data', '1.225')])
>>> print(json.dumps(od))
{"method": "constant", "data": "1.225"}

您可以将OrderedDict相同地迭代到dict

>>> for k, v in od.items():
...    print(k, v)
method constant
data 1.225