将数据压缩为字符串以用于 json post 而不保存文件

我正在编写代码 (Python 3),用于在小型 IOT 设备上收集数据并将其上传到 AWS 上的数据库。目前,数据是通过将其解析为 json 字符串并通过 post 请求发送来发送的。有时可能会有很多数据,我想知道是否可以使用 post 请求以压缩形式发送它。

我不想做的是获取数据,将其压缩到一个文件中,然后将该文件的原始数据读入一个字符串,并将该字符串放入 JSON 中。保存文件并立即从中读取将是一种浪费。

有没有办法将数据直接压缩成一串原始数据,然后发送压缩后的字符串而不是压缩成文件并读取它?

我需要一种无损压缩格式,希望压缩/解压缩不会占用太多资源。.npy 压缩会特别好。


回首忆惘然
浏览 221回答 2
2回答

红糖糍粑

自从您提到 npy 以来,您似乎拥有二进制数据。只需在 POST 正文中发送二进制数据。如果您需要压缩信号,那么这是一个不同的问题。大多数测量都不是非常可无损压缩的。您可能需要降低浮点数的精度或在设备上进行一些信号处理,例如低通滤波噪声、带通限制、增量压缩。为了获得良好的结果,使用了强大的有损量化算法,例如 mp3 正在使用。但这些很难理解和正确。

千巷猫影

如果您的设备通过 MQTT 连接到我假设的 AWS IoT 核心,您不会发布任何内容?这通常是一个较轻的设置,然后 HTTP 和 MQTT 在实际物联网开发中是首选。除非您想在设备上编写压缩算法,否则处理这些事情的最佳方法是通过 AWS IoT Core 发送您的数据并将 Lambda 操作连接到该传入消息。然后在将信息直接从 Lambda 分派到 DynomoDB 或 S3 之前,对 Lambda 进行编程以执行任何文件操作或压缩。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python