我正在处理一组我已经转换成字典列表的数据
例如,我的列表中有一项是
{'reportDate': u'R20070501', 'idnum': u'1078099', 'columnLabel': u'2005',
'actionDate': u'C20070627', 'data': u'76,000', 'rowLabel': u'Sales of Bananas'}
按要求
我的列表中的第二项可以是:
^{pr2}$第三项可以是:
{'reportDate': u'R20070501', 'idnum': u'1078100', 'columnLabel': u'Full Year 2005',
'actionDate': u'C20070627', 'data': u'116,000', 'rowLabel': u'Sales of Cherries'}
第四项可以是:
{'reportDate': u'R20070501', 'idnum': u'1078100', 'columnLabel': u'Full Year 2006',
'actionDate': u'C20070627', 'data': u'76,000', 'rowLabel': u'Sales of Sales of Cherries'}
我之所以需要pickle,是因为在合并结果并将其放入数据库之前,我需要找出列的所有标记方式。第一项和第二项将是结果中的一行,第三项和第四项将是结果中的下一行(在有人决定统一的列标题标签应该是什么之后)
我测试了pickle,并能够保存和检索我的数据。但是,我需要能够保留输出中的顺序。我的一个想法是添加另一个键,它是一个计数器,这样我就可以检索数据,然后按计数器排序。有更好的方法吗?在
我不想把这个放到数据库里,因为它不是永久的。在
我在下面写了一个答案。这不是我得到的,所以我需要弄清楚问题是否在我的代码中的其他地方。在
Python在字典中不保留顺序。
但是,在collections模块中有一个OrderedDict类。在
另一个选择是使用元组列表:
如果以后需要将其转换为字典,可以使用内置的
dict()
。在那么泡菜怎么了?如果你把你的数据结构成一个dict列表,那么一切都应该按照你想要的方式工作(如果我理解你的问题)。在
Python dict是一个无序的容器。如果您需要保持条目的顺序,您应该考虑使用2元组的列表。在
另一个选择是保留一个额外的、有序的密钥列表。通过这种方式,您可以从字典提供的快速键控访问中获益,同时仍然能够以有序的方式迭代其值:
相关问题 更多 >
编程相关推荐