python - 如果没有适当的比较器,您可以“读取” leveldb 数据吗?

标签 python python-2.7 google-chrome indexeddb leveldb

我正在尝试访问由 Chrome 存储 indexeddb 生成的 leveldb。我得到键和值。但它们要么采用未知的编码 - 我已经尝试了很多方法来检测它们 - 或者它们以某种方式被扰乱。

import plyvel    
db = plyvel.DB(dirname, comparator=cmp, comparator_name="idb_cmp1")
for key, value in db:
    print(key) 
    print(value)

我不介意 key 是否按描述的随机顺序 here 。但如果能以可读的方式获取键和值就好了。我也不处理 leveldb 中的二进制数据。

我在 python 中使用 plyvel 来迭代数据库。这个答案可能相关:LevelDB C iterator

最佳答案

您可以通过将完全相同的比较器名称传递给 plyvel 中的自定义比较器来伪造它。该比较器的工作方式可能与最初用于创建数据库的比较器不同。我想这会让你克服第一个障碍。

但是由于leveldb不提供只读操作模式,因此在您读取数据库时可能会启动后台线程来进行一些压缩。由于比较器发生错误,这可能会导致数据丢失和数据库损坏。

关于python - 如果没有适当的比较器,您可以“读取” leveldb 数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587347/

相关文章:

python - C++ 和 Python 之间/中的区别

python - 用户警告 : "Cannot parse header or footer so it will be ignored" on loading xlsm file

jquery - 用于进度条的 $.getJSON 在 Safari 和 Chrome 中不起作用(但在 IE6+ 和 FF 中正常)

python - Python 3 中的 urllib 使用

python - pandas groupby agg 从一列中获取最大值并从另一列中获取值

python-2.7 - 由于内存泄漏,OpenCV 视频编写器写入空白文件?

android - 在 android native 浏览器上测试网络应用程序就足够了吗?

javascript - 除了 Mozilla Firefox 之外,视频不会在任何浏览器中自动播放

python - 在 Django 中显示数据

python - 为什么 psycopg2 execute() 函数不转义字符