gpt4 book ai didi

python - 在 python 中创建小型数据库的最佳做法是什么?

转载 作者:太空狗 更新时间:2023-10-30 02:39:44 25 4
gpt4 key购买 nike

如果我想用 Python 创建一个小型数据库,最好的做法是什么?

例如,如果我想在数据库中存储 Cisco 命令“sh ip route”的输出,

O       1.1.1.1 [110/2] via 10.0.0.1, 00:00:23, FastEthernet0/0

存储这些值:

1.1.1.1 —> 下一跳、出接口(interface)、源(如O、C、S)

  1. 使用 postgreSQL、mySQL
  2. 像这样的嵌套字典 {'1.1.1.1':{next hop: {outgoing interface: source}}
  3. 一个以列表作为值的字典{'1.1.1.1':[下一跳、传出接口(interface)、来源]}
  4. 还有其他选择吗?

我觉得 SQL 是最好的解决方案,但如果不是 SQL,还有什么选择?

最佳答案

路由表的形式看起来更类似于 RDBMS(如 Postgres 或 MySQL)中的关系表的文档。

在这种情况下,我更愿意使用面向文档的数据库。至于使用哪个数据库取决于你的部署场景和应用架构。

如果您的目标是可以通过网络访问的数据库服务器,那么 Mongo 是一个很好的选择。如果你想要一个只在本地访问数据的单节点应用程序,那么你可以看看 TinyDB。

使用 TinyDB,您的代码将如下所示:

 from tinydb import TinyDB, Query

db = TinyDB('/path/to/db.json')
db.insert({ 'Destination': '1.1.1.1',
'NextHop': '10.0.0.1',
'A': '*',
'P': 'B',
'Prf': 170',
....
})

最后寻找单独的路线:

  route = Query()
db.search(route.Destination == '1.1.1.1')
# [{'Destination': '1.1.1.1','NextHop': '10.0.0.1','A': '*',...}]

或者一次获取所有的:

  db.all()

希望对您有所帮助!

关于python - 在 python 中创建小型数据库的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43647869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com