我如何使用zlib编码列表?

时间:2016-01-15 06:59:51

标签: python encoding zlib

如何在不获取类型错误的情况下将值编码为txt文件。我一直得到"缓冲区界面"

不支持列表
import zlib
sentence = input("Enter the text you want to compress: ")
listSentence = sentence.split(" ")
d = {}
i = 0
values = []
for i, word in enumerate(sentence.split(" ")):
    if not word in d:
        d[word] = (i+1)
    values += [d[word]]
comv = zlib.compress(values.encode('utf-8'))
with open("listofwords.txt", "wb") as myfile:
myfile.write(comv)

此代码为用户输入分配值,就是这样做。我需要将值压缩为.txt文件。

1 个答案:

答案 0 :(得分:1)

您可以使用json将列表转换为字符串。

import json
comv = zlib.compress(json.dumps(values))

然后你就可以zlib了。 当然解压缩时,需要使用json.loads()将其恢复到列表中。