我一直在努力学习pickle
和dbm
python 模块。我编写了一些连接到 dbm 数据库并写入数据和腌制信息的代码。
import dbm
import pickle
class PickleDB:
def set_dbname(self):
self.db = dbm.open("pickle", "n")
def get_data(self):
self.raw_data = input("Enter your raw data")
self.pickled_data = pickle.dumps(self.raw_data)
def write_to_db(self):
self.db["Raw"] = self.raw_data
self.db["Pickled"] = self.pickled_data
pickled_db = PickleDB()
pickled_db.set_dbname()
pickled_db.get_data()
pickled_db.write_to_db()
运行程序时一切正常,但是当我尝试访问数据库时出现问题。钥匙不可用。
>>> db = dbm.open("pickle", "n")
>>> db["Raw"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Raw'
>>> db.keys()
[]
为什么是这样?为什么数据没有写入数据库?