【问题标题】:How do I read blob data in sqlite file into readable format?如何将 sqlite 文件中的 blob 数据读取为可读格式?
【发布时间】:2021-01-09 00:45:02
【问题描述】:

愚蠢的问题,但是如何将存储在 blob 格式的数据转换为人类可读的格式?我的数据存储在 .sqlite 文件中。在 R 中查看时,许多字段都以 blob[##, B] 格式存储(如果您知道这样的解决方案,我也可以使用 Python)

当我查询我的数据时,如果我在列周围使用 HEX 函数,我会得到如下响应...

789C55CF310EC2300C05D0AB449E3B244D1AC7CCB02171...

当我在没有 HEX 函数的情况下查询我的数据时,我得到

b"x\x9cU\xcf1\x0e\xc20\x0c\x05\xd0\xabX\x9e;\x...

我期待在我的专栏中出现“2018”或“加拿大”之类的内容,但我得到了所有这些废话。

library(RSQLite)

conn = RSQLite::dbConnect(RSQLite::SQLite(), '/Users/me/countries/database.sqlite')

dbGetQuery(conn, "select * from countries limit 10")

【问题讨论】:

  • b"x\x0c... 看起来像一个 python 字符串,对吗?
  • runningbirds,你能提供一些可重现的东西吗?例如,您知道具体应该呈现什么 that 十六进制字符串吗?拥有已知的往返数据输入/十六进制输出或 blob-out 可能很有用。

标签: sql r sqlite blob


【解决方案1】:

我也面临同样的问题,并为此在 python 中找到了解决方案。我们无法解码这些值,因为这些值是压缩格式的,所以在执行解码之前,我们应该执行如下解压缩操作。

import zlib
strs = b'x\x9c\x8bV\xf2\xcd\xcfO\xa9T\xd2QPrL\xceM,R\x8a\x05\x003\xf0\x05y'
zlib.decompress(strs).decode("utf-8")

'["Moody", "Acmar"]'

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 2012-05-27
    • 2021-03-23
    • 2018-10-02
    • 2019-09-07
    • 2021-09-28
    • 1970-01-01
    • 2011-04-14
    • 2019-11-17
    相关资源
    最近更新 更多