Python,计算高效的数据存储方法

标签 python sql arrays mongodb database

我正在通过来自服务器的 http 请求检索结构化数字数据( float 2-3 个小数位)。数据以数字集的形式出现,然后将其转换为数组/列表。然后我想将每组数据存储在我的计算机本地,以便我可以进一步操作它。

由于需要收集的数据集非常多,简单地将每个进来的数据集写入一个.txt文件似乎效率不高。另一方面,我知道有多种解决方案,例如 mongodb、python 到 sql 接口(interface)...等等,但我不确定我应该使用哪个,哪个最适合这种情况。

此外,创建的数据库必须能够通过不同的语言(如 MATLAB)进行交互和查询。

最佳答案

如果您只是想将它存储在某个地方以便 MATLAB 可以使用它;从数据库中选择您的选择 supported by matlab然后为该数据库安装适当的 Python 驱动程序。

Python 中的所有数据库都有一个标准 API(称为 dbapi),因此有一种处理数据库的统一方式。

由于您没有告诉我们以后打算如何处理这些数据,因此很难提供任何进一步的细节。


the idea is that i wish to essentially download all of the data onto my machine so that i can operate on it locally later (run analytics and perform certain mathematical operations on it) instead of having to call it from the server constantly.

为此,您可以使用任何存储机制,从文本文件到 MATLAB 支持的任何数据库 - 因为 MATLAB 支持的所有数据库都受 Python 支持。

您可以选择将数据存储为“文本”,然后在应用程序端(即MATLAB 端)进行数值计算。或者您可以选择将数据存储为数字/ float /小数(取决于您需要的精度),这将允许您在数据库端进行一些计算。

如果您只想将其存储为文本并在应用程序端进行计算,那么最简单的选择是 mongodb,因为它是无模式的。您会将数据存储为 JSON - 这可能是从 Web 检索数据的格式。

如果您希望利用某些数学函数或其他功能(例如,地理空间计算),那么更好的选择是您熟悉的传统数据库。您必须创建一个模式并为每个传入的数据对象定义数据类型;然后适本地存储它们,以便利用数据库的查询功能。

关于Python,计算高效的数据存储方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37246342/

相关文章:

python - pytest从不同的测试文件独立导入同一模块

python - 如果我可以直接使用cursor.execute,为什么我要引用cursor.fetchall()?

.net - SQL Server 的两个管理员帐户

arrays - 将元素从一个数组传递到另一个数组,生成 CSV

python - 我有一个带有列表的 Pandas 专栏。对包含同一列中至少一个公共(public)元素的行进行分组

python - 列表中的命名元组

mysql - 数据库查询月份

php - 使用php将excel中的多行数据导入mysql

php - 需要从 mysql 帮助编译数组

PHP Foreach 循环效率