存储在 Microsoft SQL 中的 Python blob PDF - 转换回 PDF
Posted
技术标签:
【中文标题】存储在 Microsoft SQL 中的 Python blob PDF - 转换回 PDF【英文标题】:Python blob PDF stored in Microsoft SQL - convert back to PDF 【发布时间】:2018-09-04 14:21:40 【问题描述】:我有一个 PDF 文档作为 Blob 存储在 Microsoft SQL 数据库中。我正在尝试将 blob 转换回 PDF 以在内存中打开以进行分析,也可能将其保存到本地驱动器。我尝试使用“.read”保存其中一个文档,但它给了我一个错误:
ValueError: 嵌入空字节
这是我的代码/尝试:
connect = pyodbc.connect(
Driver = driver,
Server = server,
Database = database,
User = username,
Password = password)
test_query = "SELECT TOP 1 * FROM test.PDFs"
df_test = pd.read_sql(test_query, connect)
df_test_pdf = df_test['RawDocument'][0]
with open(df_test_pdf, "rb") as f:
b = f.read
print(df_test_pdf)
【问题讨论】:
open
用于打开文件。 df_test_pdf
虽然不是文件。充其量,它是内存中的缓冲区。首先将其保存到磁盘以确保您可以读取它。
好的,PDF blob 在“RawDocument”列中,如何避免在内存中创建缓冲区并保存文件?当我尝试编写它时,出现此错误: df_test_pdf = df_test_pdf.write(df_test_pdf) "AttributeError: 'bytes' object has no attribute 'write'"
【参考方案1】:
我用这个解决了
with open("Output.pdf", "wb") as output_file:
cursor.execute("SELECT TOP 1 RawDocument FROM test.PDFs")
ablob = cursor.fetchone()
output_file.write(ablob[0])
从这里的类似问题中得到答案:
Writing blob from SQLite to file using Python
【讨论】:
以上是关于存储在 Microsoft SQL 中的 Python blob PDF - 转换回 PDF的主要内容,如果未能解决你的问题,请参考以下文章
存储在 Microsoft SQL 中的 Python blob PDF - 转换回 PDF
如何在 Microsoft SQL Server 2017 上调试存储过程?
SQL Server 无效版本:15 (Microsoft.SqlServer.Smo)
如何使用 JDBC 将表值参数(类数组参数)传递给 Microsoft SQL Server 2008 R2 中的存储过程? [复制]