shelve中的所有数据如何有序显示?

How to display all data in shelve in order?

这是我第一次post出现堆栈溢出。也许我能得到我需要的解决方案。

busdata=shelve.open("Database")
for lctno in busdata.keys():
    outputLine( lctno , busdata[ lctno ])

它随机显示我的.dat 文件中的数据。我想让它按升序显示。

正如g.d.d.c所建议的那样,解决方案是自己对键进行排序。

busdata=shelve.open("Database")
my_keys = list(bustdata.keys())
my_keys.sort()
for lctno in my_keys:
    outputLine( lctno , busdata[ lctno ])

由于上面的代码对我不起作用 - 我做了一些测试,并考虑发布我的最终工作结果(完整) - 按顺序解决所有搁置数据的列表:

#!/usr/bin/python
# 

import shelve

def main():
    db = shelve.open("database.db")
    dkeys = list(db.keys())
    dkeys.sort()
    for x in dkeys:
        print ( x , db[ x ])
    db.close()
    return

if __name__ == "__main__":
    main()