当前位置: 首页 > 面试题库 >

如何从C读取python pickle数据库/文件?

楚良平
2023-03-14
问题内容

我正在与几个音乐播放器集成。目前,我最喜欢的是灵动的。

在新版本中,他们正在将数据库格式从SQLite3迁移到内部Pickle格式。我想知道是否有一种方法可以访问泡菜格式的文件,而无需手工进行逆向工程。

我知道有cPickle python模块,但是我不知道它是否可以直接从C调用。


问题答案:

http://www.picklingtools.com/

有一个名为PicklingTools的库,该库可能会有用:我可以维护该库:它使您可以用C 形成数据结构,然后可以对其进行腌制/解开…这是C

,而不是C,但这应该不是问题这些天(假设您正在使用gcc / g ++套件)。

该库是一个普通的C 库(发行版中有一些C 和Python的示例,显示了如何在来自C
++和Python的套接字和文件上使用该库),但总的来说,可以使用对文件进行酸洗的基本知识。

基本思想是PicklingTools库为您提供了来自C 的“类似于python”的数据结构,以便您可以在Python / C

中进行序列化和反序列化。支持所有(?)基本类型:int,long
int,字符串,None,复杂,字典,列表,有序字典和元组。很少有挂钩可以做自定义类,但是那部分还不成熟:库的其余部分非常稳定,并且已经运行了8(?)年。

简单的例子:

#include "chooseser.h"
int main()
{
  Val a_dict = Tab("{ 'a':1, 'b':[1,2.2,'three'], 'c':None }");
  cout << a_dict["b"][0];  // value of 1

  // Dump to a file
  DumpValToFile(a_dict, "example.p0", SERIALIZE_P0);

  // .. from Python, can load the dictionary with pickle.load(file('example.p0'))

  // Get the result back
  Val result;
  LoadValFromFile(result, "example.p0", SERIALIZE_P0);
  cout << result << endl;
}

该网站上还有其他文档(FAQ和用户指南)。

希望这是有用的:

再见

里奇

http://www.picklingtools.com/



 类似资料:
  • 我正在集成cxf webservices,没有spring,消息是签名的。作为一个指南,我已经使用了本教程CXF安全性。我想在数据库中存储x509证书或密钥库。 我已经重写了WSS4JOUTInterceptor.LoadCryptoFromPropertiesFile方法。 但是这里有几个问题: 1。有一个错误像

  • 我正在尝试读取我的Flutter应用程序中的firebase实时数据库中的数据,并将其分配给模型类,但是,我在控制台中得到了以下错误。 下面是我到目前为止所做的代码 员工类别 我不知道我做错了什么,请帮我解决这个问题

  • 我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。 这就是我所做的一切。 依赖项: 实现'com.google.firebase: Firebase存储: 9.2.1' 实现'com。谷歌。firebase:firebase数据库:9.2。1' 实现'com。谷歌。firebase:firebase授权:9.2。1' 实现'com。谷歌。火基:火基核心:9.2。

  • 问题内容: 我正在尝试从清单文件中提取信息以在文件中的一种方法中显示,但是似乎存在一些问题。任何帮助表示赞赏。 清单文件: myClass.java: 输出: 那有什么呢?看起来pkg对象已正确定义,但是它不读取任何Specification或Implementation属性。 问题答案: 所以我终于弄清楚了,以为我愿意和别人分享我的头,以防其他人像我那样把头撞在那堵砖墙上。我再也无法让类中的方法

  • 我正在尝试从C#中的文档文件中读取文本 我无法在C#中创建新文档。 我尝试使用“using microsoft.office.interop.word”或“using system.windows.documents”,但它无法识别代码“Document doc=new Document”。 此外,如何从.docx文件中读取文本? 会有什么问题?TNX

  • 问题内容: 嗨,我习惯了SQL,但是我需要从HBase表读取数据。任何帮助都会很棒。一本书,或者只是一些示例代码,可以从表中读取。有人说使用扫描仪可以解决问题,但我不知道如何使用。 问题答案: 从网站: