如何在python中保存双端队列数据

问题描述 投票:0回答:1

我有一些用Python写的代码,其中包含以下代码行:

user_last3[name].append(score)

并且我想知道您是否可以将其保存到Python中的某种数据库中(在Python 3.x中),以便我可以处理以前保存到数据库中的数据,以便将分数附加到已经存在的用户上并处理数据以将其全部打印到程序中。

我进行了一些研究,发现了Pickle和JSon数据库,但是我的Python编程知识不是很广,我不知道如何将它们实现到我的代码中以及如何打包和解压缩这行代码。

有人可以帮助我吗? (任何帮助,不胜感激)

json python-3.x pickle deque
1个回答
0
投票

您正在寻找的工具是shelve模块。它为带有腌制Python对象的持久数据存储提供了类似于字典的接口。

这里是一个双端队列的示例,其数据在会话之间被记住:

====== RESTART: Shell ======
>>> import shelve
>>> import collections
>>> user_last3 = shelve.open('scores.pickle', writeback=True)
>>> user_last3['mark'] = collections.deque([86, 81, 92], maxlen=3)
>>> user_last3['jane'] = collections.deque([87, 90, 91], maxlen=3)
>>> dict(user_last3)
{'jane': deque([87, 90, 91], maxlen=3), 'mark': deque([86, 81, 92], maxlen=3)}
>>> user_last3.close()

====== RESTART: Shell ======
>>> import shelve
>>> user_last3 = shelve.open('scores.pickle', writeback=True)
>>> user_last3['mark'].append(99)
>>> user_last3['jane'].append(98)
>>> dict(user_last3)
{'jane': deque([90, 91, 98], maxlen=3), 'mark': deque([81, 92, 99], maxlen=3)}
>>> user_last3.close()
© www.soinside.com 2019 - 2024. All rights reserved.