我发布表单,然后抓住json形成字典。
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')))
Can I do an ordered, default dict in Python?
这样做之后我的dict命令就像这样改变了
myd = \
{'a': {'b': 'c1', 'd': 'f1'},
'c': {'bbb': 'c3', 'ddd': 'f3'},
'b': {'bb': 'c2', 'dd': 'f2'},
}
如何维持订单?
答案 0 :(得分:4)
我相信你应该这样做:
json.loads(request.POST.get('myd'), object_pairs_hook=collections.OrderedDict)
您可以在documentation中看到有关object_pairs_hook关键字的一些文档。
答案 1 :(得分:0)
python词典对象的目的是为您提供对键值对的O(1)访问。因此,字典可以选择以不同的顺序排列它以获得更好的性能需求。说过你总能做类似的事情:
for key in sorted(myd.iterkeys()):
print "%s: %s" % (key, myd[key])