gpt4 book ai didi

python - 如何使用 psycopg2 获取二进制数据

转载 作者:行者123 更新时间:2023-11-28 17:27:28 25 4
gpt4 key购买 nike

我有一列包含二进制数据。如果我执行 fetchone() 它不会给我任何数据,而是我执行 fetchall() 然后得到下面的结果。 O 如何将二进制数据放入变量中,然后将其转换为 base64 编码的字符串?

con = psycopg2.connect(config.DB_CONNECTION)                
cur = con.cursor()
cur.execute("select image from user_tbl where mobile=%s",(str(jsond['mobb'][0]),))
print cur.fetchall()
[(read-only buffer for 0x038DA430, size 64041, offset 0 at 0x03AE61C0,)]

最佳答案

psycopg2 在 Python 2 的 buffer 对象中返回二进制数据(可能存储在表的 bytea 列中),或者一个memoryview在 Python 3 中。

buffermemoryview 对象都可以直接传递给 base64 字符串编码器,因此这将以 base 64 编码二进制数据:

import base64

rows = cur.fetchall()
binary_img = rows[0][0]
base64_img = base64.b64encode(binary_img)

在 Python 2 中,如果您想要二进制数据本身,您可以使用 str() 或使用 [:] 切片 buffer 对象.在 Python 3 中,您可以使用 memoryview 对象的 tobytes() 方法。

关于python - 如何使用 psycopg2 获取二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37717280/

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