我一直在尝试以要求的格式打印字典输出,但是以某种方式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"}
谢谢!
答案 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字典完全相同,只是会记住插入(或插入)键值对的顺序。在字典中更新值不会影响键值对的顺序。