Auf*_*ind 7 python mysql pickle
我查看了几个SO-Questions,了解如何挑选python对象并将其存储到数据库中.我收集的信息是:
import pickle
或import cpickle
.如果性能有问题,请导入后者.dict
是一个Python字典(或什么那么Python对象)pickled = pickle.dumps(dict)
.pickled
使用什么模块与数据库进行通信,存储到MySQL BLOB列中.pickle.loads(pickled)
恢复python字典.我只是想确保我明白这一点.我错过了一些关键的东西吗 有副作用吗?这真的很容易吗?
背景信息:我唯一想做的就是存储Googlegeocoder-Responses,在我的例子中是嵌套的python dictionarys.我只使用响应对象的一小部分,我不知道以后是否需要更多的响应对象.这就是为什么我想存储响应以节省我重复几百万个查询的原因.
这真的很容易......只要你不需要你的数据库知道关于字典的任何事情。如果您需要对字典内容进行任何类型的结构化数据访问,那么您将必须更多地参与其中。
另一个问题可能是您打算放入字典中的内容。Python 的 pickle 序列化非常智能,可以处理大多数情况,无需添加自定义支持。然而,当它不起作用时,可能很难理解出了什么问题。因此,如果可以的话,将 dict 的内容限制为 Python 的内置类型。如果您开始添加自定义类的实例,请将它们保留为简单的自定义类,这些类不会对属性存储或访问执行任何有趣的操作。并注意从附加组件中添加类或类型的实例。一般来说,如果您在酸洗或反酸洗方面开始遇到难以理解的问题,请查看字典中的非内置类型。