2

我在 Python 2.6 中有一个例程,将大量 html 文本存储在 AWS DynamoDB 数据库中,问题是这些“blob”在进行简单检索时会占用大量空间和计算单元,所以我正在寻找方法将字符串压缩成更轻量级的东西。

我已经对以下内容进行了一些简单的测试,并且它可以工作(大大减少了 DynamoDB 计算单元),但我正在寻找关于这是否是最好的方法的输入。

以下是我用来生成 json 数组的纯文本 gzip 压缩版本的 Python 2.6 代码。json 数组包含几个键,每个键都有一大块 html。

import urllib, json
str = urllib.quote(json.dumps({'foo1': 'bar'}).encode('zlib').encode('base64'))

然后使用 php 我可以运行以下命令将字符串返回到其自然数组:

json_decode(gzuncompress(base64_decode(urldecode($str))),1);

有没有人有任何提示或者这是实现我的目标的最佳方式?

4

2 回答 2

0

您真的需要将数据作为纯字符串存储在数据库中吗?您可以省略 base64 编码并将数据以二进制形式保存到数据库中,以稍微提高代码速度。无论如何,数据已被压缩,因此您无法直接将其可视化。http://aws.amazon.com/about-aws/whats-new/2012/08/21/dynamodb-announces-binary-data-types/

于 2013-03-15T08:34:47.283 回答
0

您可以使用 base64 编码

蟒蛇代码:

import base64
print(base64.b64encode(b"Hello World").decode())

PHP代码:

base64_decode("your base64 encoded text from the python script")
于 2021-01-31T19:40:19.320 回答