Skip to main content
 首页 » 编程设计

Python 嵌套数据持久化

2025年05月04日16dflying

我需要一种方法来存储系统配置数据,我发现它很容易理解/理解嵌套类:

>>> class syscnf: 
...     class netwrk: 
...         class iface: 
...             class eth0: 
...                 address = '192.168.0.100' 
...                 netmask = '255.255.255.0' 
...                 mtu = 1500 
...             class eth1: 
...                 address = '172.25.0.23' 
...                 netmask = '255.255.255.128' 
...         class route: 
...             default = '192.168.0.1' 
>>> 
>>> print syscnf.netwrk.iface.eth0.address 
192.168.0.100 
>>>  

但是这个结构不能被 pickle 和保存。我知道我可以将它搁置在键/值对中:

syscnf.netwrk.iface.eth0.address => 192.168.0.100 
syscnf.netwrk.iface.eth0.netmask => 255.255.255.0 
syscnf.netwrk.route.default => 192.168.0.1 
syscnf.... etc 

但这似乎很难管理并且容易出错?

或者我可以将它保存在一个 sqlite 数据库中,但是我需要一个新表,并且每个最终级别的配置数据和存储 pickled 数据在 sqlite 中的模式似乎很难管理。

我需要一种方法将这些数据保存在嵌入式平台上,因此它需要依赖纯 python 和包含的模块,(或者真的很容易交叉编译——我没试过,但 ZODB 确实读起来像这样易于交叉编译等)

您使用了什么灵活而直接的方法?它不需要高性能,并发性会很好,但不是“必需”

我从来没有做过这样的事情,希望你们有一些想要分享的见解/经验!

请您参考如下方法:

所有酷 child 都使用 json .此外,让您的结构使用实例而不是裸类将使序列化变得更加容易。