gpt4 book ai didi

python - 在 cassandra 中保存 zip 文件并读取它

转载 作者:行者123 更新时间:2023-11-30 22:20:37 27 4
gpt4 key购买 nike

我需要在 cassandra 数据库中保存一个 zip 文件。我需要在另一个程序中将其取回。为了持久化它,我使用以下代码-

    bin_data = open("Model-File.zip", 'rb').read()
bin_data=bin_data.decode('latin-1').encode("utf-8")

这个bin_data我可以以字符串格式持久化到cassandra-

    CQLString = "INSERT INTO testkeyspacenew.model (modelid, data) 
VALUES(%s,%s)"
session.execute(CQLString, (model_id,bin_data))

但是,当读回它时,我无法以开始时的格式获取 bin_data 。因此无法重新创建 zip 文件。请帮忙。这是我在阅读过程中尝试过的-

    abc=session.execute(CQLString)
for row in abc:
data=row
data=str(data)
print (data.encode("utf-8").encode('latin-1'))

我在读取时打印的数据与我从zip文件中获取的bin_data不同。

最佳答案

Cassandra 和 CQL 知道 blob键入可能是您想要的内容。请参阅:https://docs.datastax.com/en/archived/cassandra/1.2/cassandra/tools/use_about_data_types_c.html

您正在使用bin_data=bin_data.decode('latin-1').encode("utf-8")对二进制数据进行转码这根本没有必要。

置顶 print (data.encode("utf-8").encode('latin-1'))显示两个 encode来电。

编辑:使用 blob 从 DataStax 驱动程序找到测试在这里https://github.com/datastax/python-driver/blob/master/tests/integration/standard/test_types.py

        s.execute("CREATE TABLE blobbytes2 (a ascii PRIMARY KEY, b blob)")

params = ['key1', bytearray(b'blob1')]
s.execute("INSERT INTO blobbytes2 (a, b) VALUES (%s, %s)", params)

关于python - 在 cassandra 中保存 zip 文件并读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48806085/

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