zstd compressobj()无法在python 0.8.1中工作?

时间:2018-02-27 07:10:04

标签: compression zstandard

使用这个python模块zstd 0.8.1仍然很新。我对以下内容进行了测试,

SQL> select
  2    sum(case when sysdate - trunc(log_date) > 300 then 1 else 0 end) "older than 300 days",
  3    sum(case when sysdate - trunc(log_date) > 250 then 1 else 0 end) "older than 250 days",
  4    sum(case when sysdate - trunc(log_date) > 200 then 1 else 0 end) "older than 200 days"
  5  from log_records;

older than 300 days older than 250 days older than 200 days
------------------- ------------------- -------------------
                  2                   3                   3

SQL>

然而,当我这样做时,

import zstd

cctx = zstd.ZstdCompressor()
zstd_data = cctx.compress(b'aaaaa')
len(zstd_data)
Out[34]: 14  #this is my output

我的错误是什么?

1 个答案:

答案 0 :(得分:2)

我知道已经有一段时间了,但是我想为在Google上看到此页面的任何人提供答案。

您似乎正在使用python-zstandard库(https://github.com/indygreg/python-zstandard/issues)。重要的是要注意,在示例中,ZstdCompressor对象演示的最后一行使用zstd_data = cobj.flush()。添加该行之后,它应该可以工作。

或者,如果您更喜欢simple API

cctx = zstd.ZstdCompressor()
compressed = cctx.compress(b'data to compress')

您的第二个示例不包括flush()所需的compressobj()步骤