【问题标题】:How can I write data from a pickle file to sqlite3 database?如何将pickle文件中的数据写入sqlite3数据库?
【发布时间】:2017-10-09 18:01:41
【问题描述】:

我已将数据收集到一个 pickle 文件中,并希望将该数据写入 sqlite3 数据库。有人可以帮我解决需要做的事情吗?

【问题讨论】:

  • 嗯,究竟你想做什么?
  • 你确定要这个吗?为什么要将数据块存储在用于存储结构化数据的数据存储中?
  • 我有来自食谱网站的数据,并希望将其存储在 sqlite3 中以便于检索。我们已将数据存储在 pkl 文件中,但我不确定如何将数据与数据库交互。
  • 为什么不使用shelve?它使用pickle 来存储数据。
  • 如果您想要“轻松检索”,将其存储为泡菜似乎很奇怪。您似乎在使用 sqlite,就好像它是某种存档(如 zip 文件),而不是使用它的任何最强大的功能。

标签: python sqlite pickle


【解决方案1】:

您需要创建BLOB 类型的列(在Sqlite3 中是supported datatype)。

然后,您只需 INSERT INTO data (id, content) VALUES (?, ?) 使用您的 pickle 对象的二进制转储即可。

这是walk through on Sqlite3 inserts

pickle.dumps 会将对象转换为可以存储在数据库中的字节串。 pickle.loads 将在从数据库中删除 SELECT 后将其转回。

您也可以考虑将dill 用于更复杂的对象。

【讨论】:

  • 我完全按照你所说的做了。但是,当从数据库查询时,pickle.loads 会给出 EOFError Ran out of input。我在插入数据库之前检查了负载 - 它运行良好,但是在读取插入的值之后,感觉。我不知道为什么会这样。请帮忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 2014-12-02
  • 2011-05-11
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
相关资源
最近更新 更多