1

我正在发布表格,然后抓取 json 以形成 dict 。

myd = \
{'a': {'b': 'c1', 'd': 'f1'},
 'b': {'bb': 'c2', 'dd': 'f2'},
 'c': {'bbb': 'c3', 'ddd': 'f3'}
}

现在我正在使用 josn.loads 将其转换为 python dict

我正在这样做

        headers = DefaultOrderedDict(list, json.loads(request.POST.get('myd')))

我可以在 Python 中做一个有序的默认字典吗?

这样做之后,我的字典顺序就这样改变了

  myd = \
    {'a': {'b': 'c1', 'd': 'f1'},
     'c': {'bbb': 'c3', 'ddd': 'f3'},
     'b': {'bb': 'c2', 'dd': 'f2'},
}

如何维护订单?

4

2 回答 2

4

我相信你应该这样做:

json.loads(request.POST.get('myd'), object_pairs_hook=collections.OrderedDict)

您可以在文档中查看有关 object_pairs_hook 关键字的一些文档

于 2013-05-03T02:29:10.353 回答
0

python 字典对象的目的是为您提供对键值对的 O(1) 访问。因此,字典可能会选择以不同的顺序排列它以获得更好的性能需求。话虽如此,您总是可以做类似的事情:

for key in sorted(myd.iterkeys()):
    print "%s: %s" % (key, myd[key])
于 2013-05-03T02:28:47.163 回答