【发布时间】:2013-03-14 15:01:51
【问题描述】:
我在 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);
有没有人有任何提示或者这是实现我的目标的最佳方式?
【问题讨论】:
-
谢谢,我正在慢慢地在 SO 上发布更好的问题 :)
-
字符串是否需要Base64编码?否则,您的解决方案似乎是一个很好的解决方案。如果没有人想出更好的主意,请以问答方式回答您自己的问题,并改写您原来的问题以匹配。
-
base64 编码的原因是它将来自 gzip(字节)的响应转换为纯字母数字字符串,然后可以将其作为纯字符串存储在数据库中。 base64 解码然后将字符串转换回字节等。