我在Python 2.6中有一个例程,它在AWS DynamoDB数据库中存储了大量的html文本,问题是这些'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);
有没有人有任何提示或这是实现我的目标的最佳途径?
答案 0 :(得分:0)
你真的需要在数据库中将数据作为普通字符串吗?您可以省略base64编码并将数据作为二进制文件保存到数据库,以略微提高代码的速度。无论如何,数据被gzip压缩,因此您无法直接将其可视化。 http://aws.amazon.com/about-aws/whats-new/2012/08/21/dynamodb-announces-binary-data-types/
答案 1 :(得分:0)
您可以使用 base64 编码
Python 代码:
import base64
print(base64.b64encode(b"Hello World").decode())
PHP 代码:
base64_decode("your base64 encoded text from the python script")