如何将一个python字典腌制成MySQL?

Auf*_*ind 7 python mysql pickle

我查看了几个SO-Questions,了解如何挑选python对象并将其存储到数据库中.我收集的信息是:

  • import pickleimport cpickle.如果性能有问题,请导入后者.
  • 假设dict是一个Python字典(或什么那么Python对象)pickled = pickle.dumps(dict).
  • pickled使用什么模块与数据库进行通信,存储到MySQL BLOB列中.
  • 再来一次.并用于pickle.loads(pickled)恢复python字典.

我只是想确保我明白这一点.我错过了一些关键的东西吗 有副作用吗?这真的很容易吗?

背景信息:我唯一想做的就是存储Googlegeocoder-Responses,在我的例子中是嵌套的python dictionarys.我只使用响应对象的一小部分,我不知道以后是否需要更多的响应对象.这就是为什么我想存储响应以节省我重复几百万个查询的原因.

Ros*_*son 2

这真的很容易......只要你不需要你的数据库知道关于字典的任何事情。如果您需要对字典内容进行任何类型的结构化数据访问,那么您将必须更多地参与其中。

另一个问题可能是您打算放入字典中的内容。Python 的 pickle 序列化非常智能,可以处理大多数情况,无需添加自定义支持。然而,当它不起作用时,可能很难理解出了什么问题。因此,如果可以的话,将 dict 的内容限制为 Python 的内置类型。如果您开始添加自定义类的实例,请将它们保留为简单的自定义类,这些类不会对属性存储或访问执行任何有趣的操作。并注意从附加组件中添加类或类型的实例。一般来说,如果您在酸洗或反酸洗方面开始遇到难以理解的问题,请查看字典中的非内置类型。