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

python/php-跨语言字符串压缩(使用gzcompress/urlencode/json),php,python,base64,gzip,Php,Python,Base64,Gzip,我在Python2.6中有一个例程,它在AWS DynamoDB数据库中存储大量html文本,问题是这些“blob”在执行简单检索时会占用大量空间和计算单位,因此我正在寻找将字符串压缩为更轻量级的方法 我已经对以下内容做了一些简单的测试,它可以工作(大大减少DynamoDB计算单元),但我正在寻找关于这是否是最好的方法的输入 下面是我用来生成json数组的纯文本gzip压缩版本的Python 2.6代码。json数组包含几个键,每个键都有一大块html import urllib, json s

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

有人有什么建议吗?或者这是实现我的目标的最佳方法吗?

您真的需要将数据作为纯字符串保存在数据库中吗?您可以省略base64编码,并将数据以二进制形式保存到数据库中,以稍微提高代码的速度。无论如何,数据是gzip压缩的,因此您无法直接将其可视化

您可以使用base64编码

Python代码:

import base64
print(base64.b64encode(b"Hello World").decode())
PHP代码:

base64_decode("your base64 encoded text from the python script")

thx,我在发布更好的问题方面慢慢变得更好了,所以:)有必要用Base64编码字符串吗?否则,您的解决方案似乎是好的。如果没有人想出更好的主意,请以问答式的方式回答您自己的问题,并重新表述您的原始问题以匹配。base64 encode的原因是它将gzip(字节)的响应转换为普通字母数字字符串,然后可以将其作为普通字符串存储在数据库中。base64解码然后将字符串转换回字节等。