gpt4 book ai didi

python - 数据库中的 Zlib - Django

转载 作者:行者123 更新时间:2023-12-01 06:19:53 36 4
gpt4 key购买 nike

当我尝试将 zlibbed 字符串放入 models.TextField 时

>>> f = VCFile(head = 'blahblah'.encode('zlib'))
>>> f.save()

失败了:

    ...
raise DjangoUnicodeDecodeError(s, *e.args)
DjangoUnicodeDecodeError: 'utf8' codec can't decode byte 0x9c in position 1: unexpected code byte. You passed in 'x\x9cK\xcaI\xccH\x02b\x00\x0eP\x03/' (<type 'str'>)

有什么方法可以解决这个问题(除了转义字符串 - 它必须节省空间)?

最佳答案

就像 Marcus 所说,如果您想将其保留为二进制格式,则必须使用 BLOB。如果您同意对其进行编码,则可以使用 base64 编码:

from base64 import binascii

f = VCFile(head = binascii.b2a_base64('blahblah'.encode('zlib')))

在我使用 33k 字符进行的非常基本的测试中,zlib 字符串的大小是原始字符串的 28%,base64 编码的 zlib 字符串的大小是原始字符串的 37%。压缩方面不太好,但仍然是一个很大的改进。

关于python - 数据库中的 Zlib - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875122/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com