【发布时间】:2017-04-27 02:53:19
【问题描述】:
如果我想用 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 —> 下一跳、出接口、源(如O、C、S)
- 使用 postgreSQL、mySQL
- 类似这样的嵌套字典 {'1.1.1.1':{next hop: {outgoing interface: source}}李>
- 以列表为值的字典 {'1.1.1.1':[下一跳,出接口,来源]}
- 还有其他选择吗?
我觉得 SQL 会是最好的解决方案,但如果不是 SQL,还有什么选择?
【问题讨论】:
-
在python中使用sqlite3模块docs.python.org/2/library/sqlite3.html
-
当然!听起来不错。在 2 和 3 之间,哪种做法更好?
-
sqlite3中不能直接存储Python字典,所以需要将Python字典转成JSON字符串。
-
如果你正在考虑nosql,MongoDB使用PyMongo连接Python:api.mongodb.com/python/current
-
不,我的意思是如果我根本不使用 sqlite3 并在嵌套字典或以列表作为值的字典之间进行选择。在这种情况下,我必须创建一个仅在运行时可用的临时数据库。