存储在Microsoft SQL中的Python blob PDF-转换回PDF

存储在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 =

我有一个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)
我用这个解决了它

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'”