Python Digi ConnectPort数据库适配器

Python Digi ConnectPort数据库适配器,python,database,pysqlite,Python,Database,Pysqlite,我在这里有一个服务器,我将在它上面运行一个简单的web服务器,以提供所连接的ZigBee网络的信息 HTTPBaseServer和子类是纯Python类,但我也希望在设备上运行某种数据库。由于我不需要复杂的功能,我想我应该尝试在这个嵌入式设备上运行PySQLite 然而,事实证明,我不能在这个盒子上使用GCC,那么在这个盒子上还有其他可能获得某种数据库功能吗?还是我错过了在这个盒子上安装SQLite适配器的机会?一定有人用编译器来制作Python。需要编译器才能使(py)sqlite工作 您可以

我在这里有一个服务器,我将在它上面运行一个简单的web服务器,以提供所连接的ZigBee网络的信息

HTTPBaseServer和子类是纯Python类,但我也希望在设备上运行某种数据库。由于我不需要复杂的功能,我想我应该尝试在这个嵌入式设备上运行PySQLite


然而,事实证明,我不能在这个盒子上使用GCC,那么在这个盒子上还有其他可能获得某种数据库功能吗?还是我错过了在这个盒子上安装SQLite适配器的机会?

一定有人用编译器来制作Python。需要编译器才能使(py)sqlite工作


您可以使用db/anydbm模块,它将使用dbm或纯Python替代品。这不会为您提供SQL数据库,但会为您提供一个键值存储,它可能足以满足您的需要。

一定有人拥有一个编译器来制作Python。需要编译器才能使(py)sqlite工作


您可以使用db/anydbm模块,它将使用dbm或纯Python替代品。这不会为您提供SQL数据库,但会为您提供一个键值存储,它可能足以满足您的需要。

我的情况与您相同。您可以使用一些元组或字典创建一个伪数据库。诸如此类:

伪数据库={}


pseudoDB[1]={'id':1,'zb-dev-object':zb_-object,'power':power_-value}等等

我的处境和你一样。您可以使用一些元组或字典创建一个伪数据库。诸如此类:

伪数据库={}


pseudoDB[1]={'id':1,'zb-dev-object':zb_-object,'power':power_-value}等等

是的,我可以问制造商是否可以为这个特定的框编译代码;然而,我认为他们可能想要保护知识产权。我希望能够存储由时间戳、ZigBee设备对象ID和一些实数(功率、电流、THD、电压等)组成的元组。键值系统对我来说就像一个简单的数组。虽然这对于简单的应用程序来说非常强大,但当将来可能需要>50个设备时,我的应用程序可能需要为单个设备存储104.000条记录/元组。我看到有一个Shelve类,它使用带有封送或Pickle的anydb系统将数据序列化为字符串。然而,这意味着我的开销变得相当大。另一件事是Shelve也不是现成的…Shelve完全是Python,因此我能够运行shelf示例。我想我现在可以用这个了!非常感谢。是的,我可以问制造商是否有可能为这个特定的盒子编译代码;然而,我认为他们可能想要保护知识产权。我希望能够存储由时间戳、ZigBee设备对象ID和一些实数(功率、电流、THD、电压等)组成的元组。键值系统对我来说就像一个简单的数组。虽然这对于简单的应用程序来说非常强大,但当将来可能需要>50个设备时,我的应用程序可能需要为单个设备存储104.000条记录/元组。我看到有一个Shelve类,它使用带有封送或Pickle的anydb系统将数据序列化为字符串。然而,这意味着我的开销变得相当大。另一件事是Shelve也不是现成的…Shelve完全是Python,因此我能够运行shelf示例。我想我现在可以用这个了!非常感谢。我把它保存在另一个python文件(.py)中(像字典一样打开它),当我的ConnectPort X4重新启动时,该文件会像模块一样导入。这意味着您必须关心数据库中的任何插入、更新和删除。我最终也做了类似的事情,但我可以从索引中导出列信息,因为这样更有效。最后,我只是接受了损失,并没有直接将所有值写入磁盘,只是每两分钟左右写入一次。文件I/O有很多开销。至于读取数据;这仍然非常慢,但不是经常这样做,可以很容易地改进,尽管这需要另一个自定义解决方案。我将它保存在另一个python文件(.py)中(就像一个字典一样打开它),在我的ConnectPort X4重新启动时,该文件会像模块一样导入。这意味着您必须关心数据库中的任何插入、更新和删除。我最终也做了类似的事情,但我可以从索引中导出列信息,因为这样更有效。最后,我只是接受了损失,并没有直接将所有值写入磁盘,只是每两分钟左右写入一次。文件I/O有很多开销。至于读取数据;这仍然非常缓慢,但不是经常这样做,可以很容易地改进,尽管这需要另一个自定义解决方案。