【问题标题】:How to save binary blob from PostgreSQL to file?如何将二进制 blob 从 PostgreSQL 保存到文件?
【发布时间】:2016-05-25 11:57:11
【问题描述】:

这是我的代码:

    currSrc = connSrc.cursor()
    currSrc.execute("""SELECT request_id, time_beg, shape FROM "REQUESTS" WHERE fl_ready=1""")

shape 具有类型 blob (bytea)。我需要把它保存在FS上。如何用 Python 做到这一点?

【问题讨论】:

  • 看看我贴的链接,PostgreSQL和MySQL的blob处理应该没有区别。
  • @Erik 这个问题的答案是快速解决由错误的设计决定引起的问题,该决定是将二进制文件保存在 bytea 列中作为 base64 编码字符串,而不是像它那样的二进制应该是。
  • 我强烈建议不要将文件保存在数据库中,因为它会导致数据库大小快速增长,从而导致数据库运行缓慢。

标签: python postgresql psycopg2


【解决方案1】:

只需将其写入磁盘:

currSrc.execute("""
    SELECT request_id, time_beg, shape
    FROM "REQUESTS"
    WHERE fl_ready=1
""")
rs = cursor.fetchall()
f = open('/path/to/the/file', 'wb')
f.write(rs[0][2])
f.close()

[0][2]的原因是它是结果集的第一行第三列。

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 2020-05-20
    • 2020-12-29
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多