python / php - 跨语言字符串压缩(使用gzcompress / urlencode / json)

时间:2013-03-14 15:01:51

标签: php python base64 gzip

我在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);

有没有人有任何提示或这是实现我的目标的最佳途径?

2 个答案:

答案 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")