【发布时间】:2020-03-05 15:06:14
【问题描述】:
我正在使用以 .fdb 字节导出存档的管理,fdb 文件是 Firebird 使用的文件。现在我必须用 Python 创建一个解析器来获取存档并使用 Firebird 的规范解析所有存档,以便我可以使用存档获得的数据创建我的 json/xml/ecc。
这里是文件规格的链接
https://firebirdsql.org/manual/fbint-structure.html
有人有创建解析器的经验吗?他们可以指导我吗?
【问题讨论】:
-
你为什么需要它? Firebird 的下一个版本将改变 ODS,无论是大体上还是一些模糊的小细节,你将不得不一次又一次地更新你的解析器,以永无止境的 wack-a-mole 方式。获取 Firebird Embedded DLL 并从您的 python 代码中使用它。您还可以获取 Firebird C++ 源代码并使用它们进行工作。要么用 Python 重写它们,要么尝试用它们制作一个低级访问 DLL,然后从 Python 中使用它
-
你也可以在 SourceForge 上找到 FBExport 实用程序,为什么不使用 FBExport+Firebird 来创建这些 json 呢?
-
我明白你的意思,但这不是我的选择,存档转换是我启动的一个更大的数据库集成项目的一部分,他们希望我的程序现在拿存档,解码它并将感兴趣的数据发送到我们的数据库......没有任何客户交互......这是问题所在,否则我会使用简单的 exels
-
您不需要“客户交互”来调用外部 DLL 或 EXE 文件。不问客户就做。请注意,Firebird 2.5 将与回到 1990 年代后期的 Interbase 5 的 ODS 版本一起使用。但是 Firebird 3.0 故意丢球,只能与它自己的 ODS 12 一起工作。而且很有可能,Firebird 4 也将专门与它自己的 ODS 版本一起工作,并且没有更多的跨版本兼容性......坦率地说,如果你完全需要解析 -我会要求他们发送 .FBK 文件而不是 .FDB,然后将
gbak代码转换为 Python。 FBK 应该更适合单向解析
标签: python file parsing firebird