Да, вы можете.Указав аргумент object_pairs_hook
для JSONDecoder .Фактически, это точный пример, приведенный в документации.
>>> json.JSONDecoder(object_pairs_hook=collections.OrderedDict).decode('{"foo":1, "bar": 2}')
OrderedDict([('foo', 1), ('bar', 2)])
>>>
Вы можете передать этот параметр в json.loads
(если вам не нужен экземпляр Decoder для других целей), например так:
>>> import json
>>> from collections import OrderedDict
>>> data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
>>> print json.dumps(data, indent=4)
{
"foo": 1,
"bar": 2
}
>>>
Использование json.load
выполняется аналогично:
>>> data = json.load(open('config.json'), object_pairs_hook=OrderedDict)