存储在Microsoft SQL中的Python blob PDF-转换回PDF
我有一个PDF文档作为Blob存储在Microsoft SQL数据库中。我正在尝试将blob转换回PDF,以便在内存中打开进行分析,还可能将其保存到本地驱动器。我尝试使用“.read”保存其中一个文档,但它给了我一个错误: ValueError:嵌入的空字节 以下是我的代码/尝试:存储在Microsoft SQL中的Python blob PDF-转换回PDF,python,sql,sql-server,pdf,blob,Python,Sql,Sql Server,Pdf,Blob,我有一个PDF文档作为Blob存储在Microsoft SQL数据库中。我正在尝试将blob转换回PDF,以便在内存中打开进行分析,还可能将其保存到本地驱动器。我尝试使用“.read”保存其中一个文档,但它给了我一个错误: ValueError:嵌入的空字节 以下是我的代码/尝试: connect = pyodbc.connect( Driver = driver, Server = server, Database = database, User = username, Password =
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)
我用这个解决了它
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])
从一个类似的问题中得到了答案:
open
用于打开文件df_test_pdf
虽然不是一个文件。充其量,它只是内存中的一个缓冲区。首先将其保存到磁盘以确保您可以读取。好的,PDF blob位于“RawDocument”列中,如何避免在内存中创建缓冲区并保存fie?当我尝试写它时,我得到了这个错误:df_test\u pdf=df_test\u pdf.write(df_test\u pdf)“AttributeError:'bytes'对象没有属性'write'”