gpt4 book ai didi

python - 如何使用 Python io 模块构建内存驻留数据结构?

转载 作者:行者123 更新时间:2023-11-28 16:47:59 24 4
gpt4 key购买 nike

我正在尝试将从数据采集系统收集的数据写入内存中的位置,然后异步地对数据执行进一步处理,或者将其写出到文件以供离线处理。我正在尝试以这种方式构建此架构,以将数据采集与数据分析和传输隔离开来,为我们 future 的扩展和改进提供了一些灵 active ,但它肯定比直接将数据写入文件更复杂。

这是我写的一些探索性代码。

#io.BufferedRWPair test
from io import BufferedRWPair

# Samples of instrumentation data to be stored in RAM
test0 = {'Wed Aug 1 16:48:51 2012': ['20.0000', '0.0000', '13.5', '75.62', '8190',
'1640', '240', '-13', '79.40']}
test1 = {'Wed Aug 1 17:06:48 2012': ['20.0000', '0.0000', '13.5', '75.62', '8190',
'1640', '240', '-13', '79.40']}

# Attempt to create a RAM-resident object into which to read the data.
data = BufferedRWPair(' ', ' ', buffer_size=1024)

data.write(test0)
data.write(test1)

print data.getvalue()

data.close()

这里有几个问题(也许更多!):

-> 'data' 是一个变量名,它选择了一个我试图组装的结构(在 Python 之外)——这是一个类似数组的结构,应该保存顺序记录,每条记录包含多个过程数据measurements,以时间戳开头,可以作为检索的关键。我将此作为我的设计意图的背景,以防代码过于模糊而无法反射(reflect)我的真实问题。

-> 此代码不起作用,因为未创建“数据”对象。我只是想打开一个空缓冲区,稍后再填充,但是 Python 正在寻找两个对象,一个可读,一个可写,它们在我的代码中不存在。因此,我什至不确定我是否使用了正确的结构,这导致了以下问题:

  1. io.BufferedRWPair 是处理这些数据的最佳方式吗?我已经尝试过 StringIO,因为我使用的是 Python 2.7.2,但没有成功。我喜欢带有时间戳键的记录的想法,因此我选择了 dict 结构,但我肯定会考虑替代方案。我应该看看其他 io 类吗?

  2. 我看过的一种替代方法是在 NumPy/SciPy/Pandas 世界中定义的 DataFrame 结构。它看起来很有趣,但似乎需要很多额外的模块,所以我回避了。我没有任何这些模块的经验 -- 我是否应该查看这些更复杂的模块以获得我需要的东西?

我欢迎任何建议或反馈,伙计们...感谢您检查这个问题!

最佳答案

如果我理解您的要求,那么使用内存中的 sqlite 数据库可能是可行的方法。 Sqlite 允许您完全在内存中创建功能齐全的 SQL 数据库。您可以执行选择和插入,而不是读取和写入。

关于python - 如何使用 Python io 模块构建内存驻留数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11804502/

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