繁体   English   中英

将非常大的 python 字典转储到数据库的最佳策略是什么?

[英]What's the best strategy for dumping very large python dictionaries to a database?

我正在写一些东西,基本上从一个巨大的 python 字典(字典的源文件是 XML 超过一百万行)中提炼和报告各种字符串。

我昨天发现了 mongodb 并且很高兴地看到它接受 python 字典很容易...直到它拒绝我的字典因为字典 object 大于 BSON 大小限制 1。

我看了 GridFS 片刻,但它不接受任何没有 a.read 属性的 python object。

随着时间的推移,这个程序将获得许多这样的大型词典; 我想将每个转储到数据库中,以便在某些时候我可以比较它们之间的值。

处理这个问题的最佳方法是什么? 我对这一切都非常陌生,但这对我来说很好:) 似乎 NoSQL 方法是最好的; 这些结构通常是已知的,但可以更改,恕不另行通知。 架构在这里将是噩梦。

您是否考虑过使用 Pandas? 是的 Pandas 本身不接受 xml,但是如果您使用 xml(标准库)中的 ElementTree,您应该能够将其读入 Pandas 数据框,并根据您的需要添加更多数据以优化数据框得到它。

所以我认为这个问题更多的是数据设计问题,而不是 python 情况。 当我可能只需要其中的 10% 时,我正在尝试将大量非结构化数据加载到数据库中。 我决定将精炼的 xml 字典保存为共享文件系统上的腌菜以进行冷存储,并使用 mongo 来存储我想要从字典中获得的精炼查询。

这会将它们的大小从 22MB 减少到 100K。

谢谢你跟我聊这个:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM