我如何根据输出列字典输出

时间:2019-02-03 19:40:22

标签: python

我一直在尝试以要求的格式打印字典输出,但是以某种方式python按照其顺序打印。

identifiers = {
    "id" : "8888",
    "identifier" :"7777",
    }

for i in range(1, 2):
    identifiers['id'] = "{}".format(i)
    print str(identifiers).replace("'","\"")

我的代码输出:

{"identifier": "7777", "id": "1"}

需要的输出:

{"id": "1" , "identifier": "7777"}

谢谢!

1 个答案:

答案 0 :(得分:2)

从本质上讲,python字典没有固定的顺序-即使您以特定顺序定义了字典,该顺序也不会存储(或记住)任何地方。如果要保持字典顺序,可以使用OrderedDict

from collections import OrderedDict
identifiers = OrderedDict([
    ("id", "8888"), #1st element is the key and 2nd element is the value associated with that key
    ("identifier", "7777")
    ])

for i in range(1, 2):
    identifiers['id'] = "{}".format(i)

for key, value in identifiers.items(): #simpler method to output dictionary values
    print key, value

通过这种方式,您创建的字典的运行方式与普通的python字典完全相同,只是会记住插入(或插入)键值对的顺序。在字典中更新值不会影响键值对的顺序。