如何在我的写入顺序中使用python dict

时间:2015-04-27 07:32:55

标签: python dictionary

因为我在python中使用了dict,我希望它以我的写入顺序输出,

>>> print(json.dumps({'4': 5,'2':2, '6': 7,'0':0},sort_keys=False,indent=2, separators=(',', ': ')))
{
  "0": 0,
  "2": 2,
  "4": 5,
  "6": 7
}

但我希望它以书面形式输出,任何方法?

2 个答案:

答案 0 :(得分:1)

来自json.dumps的{​​{3}}:

  

如果sort_keys为True(默认值:False),则字典的输出将按键排序。

您指定了sort_keys = False,但是,Python字典{...}是任意排序的,因此当您将其传递给dumps函数时,您将丢失刚刚给出的顺序。

如果您想保留订单,可以使用documentation

>>> json.dumps(OrderedDict([('4', 5), ('2', 2), ('6', 7), ('0', 0)]), indent=2, separators=(',', ': '))

{
  "4": 5,
  "2": 2,
  "6": 7,
  "0": 0
}

答案 1 :(得分:0)

dicts没有订单,它们是无序的。您可以使用OrderedDict。

>>> print(json.dumps(OrderedDict([('4', 5), ('2', 2), ('6', 7), ('0', 0)]), indent=2, separators=(',', ': ')))

{
  "4": 5,
  "2": 2,
  "6": 7,
  "0": 0
}