如何控制PyYaml在序列化Python字典时如何输出键/值对的顺序?控制Python中的Yaml序列化顺序
我在Python脚本中使用Yaml作为简单的序列化格式。我的Yaml序列化对象代表一种“文档”,所以为了最大限度地方便用户,我希望我的对象的“名称”字段首先出现在文件中。当然,由于我的对象__getstate__
返回的值是一个字典,并且Python字典是无序的,所以“name”字段将被序列化为输出中的随机位置。
例如
>>> import yaml
>>> class Document(object):
... def __init__(self, name):
... self.name = name
... self.otherstuff = 'blah'
... def __getstate__(self):
... return self.__dict__.copy()
...
>>> doc = Document('obj-20111227')
>>> print yaml.dump(doc, indent=4)
!!python/object:__main__.Document
otherstuff: blah
name: obj-20111227
为了记录在案,有一个类似的问题(问这个后一两年),在这里:http://stackoverflow.com/q/16782112/877069 – 2015-05-22 02:41:50