如何读取数据类型为BYTEA的postgres DB中的列以及使用PYTHON对压缩json进行编码
我在postgres DB中有一列数据类型为bytea,编码为压缩的_json。我如何读取本专栏的值并在Python中获得正确的json?我现在没有时间给出完整的工作示例。相反,我将提供一个大纲:如何读取数据类型为BYTEA的postgres DB中的列以及使用PYTHON对压缩json进行编码,python,json,postgresql,compression,bytea,Python,Json,Postgresql,Compression,Bytea,我在postgres DB中有一列数据类型为bytea,编码为压缩的_json。我如何读取本专栏的值并在Python中获得正确的json?我现在没有时间给出完整的工作示例。相反,我将提供一个大纲: 从数据库中读取列 使用Python模块 json\u data=gzip.解压缩(数据) 其中,json_数据是一个字节对象 使用Python json模块读取json_数据 更新。 例如: 但是没有显示gzip.compress和decompress方法。也许这是我的gzip模块的版本问题。无论如何
json\u data=gzip.解压缩(数据)
其中,json_数据是一个字节对象
但是没有显示gzip.compress和decompress方法。也许这是我的gzip模块的版本问题。无论如何,我可以通过以下方式解压:
payload = bytearray(row[0])
fileobj = cStringIO.StringIO(payload)
gzf = gzip.GzipFile('dummy-name', 'rb', 9, fileobj)
decomprJson = gzf.read()
JSON是如何压缩的?在Python中如何访问数据库?我在Python代码中使用Psycopg2访问postgres数据库。另外,我不确定,但我认为压缩的json基本上只是一个gzip压缩的json。您需要确定使用了什么压缩,否则就不会有什么进展。你能找出数据是如何输入到列中的吗?当然。我刚找到它。它正在使用java中的GZipOutputStream进行压缩。虽然Python3.2+提供了.gzip.compress/decompress,但不确定这是否有帮助。
payload = bytearray(row[0])
fileobj = cStringIO.StringIO(payload)
gzf = gzip.GzipFile('dummy-name', 'rb', 9, fileobj)
decomprJson = gzf.read()