完全编辑:
我迫切需要使用Python访问microsoftsqlserver并从中读取压缩数据。在经历了很多麻烦之后,我终于找到了一个可以工作的Matlab实现,它可以完成这个任务。不过,我需要用Python编写。在
数据以图像数据类型存储,下载后必须解压缩。
这是使用Matlab代码(使用java例程)来完成以下工作:connection = actxserver('ADODB.Connection');
conString = 'Provider=SQLOLEDB; Data Source=adress.to.server; Integrated Security=SSPI; Initial Catalog=';
connection.ConnectionString = conString;
connection.CursorLocation = 'adUseClient';
connection.Open();
query_string = 'select Zip from Database where DatabaseName=''foo'' and Item=''bar'' ';
return = connection.Execute(query_string);
row = return.GetRows();
data = row{1};
class(data) % returns uint8
a = java.io.ByteArrayInputStream(data);
b = java.util.zip.InflaterInputStream(a);
isc = com.mathworks.mlwidgets.io.InterruptibleStreamCopier.getInterruptibleStreamCopier();
c = java.io.ByteArrayOutputStream;
isc.copyStream(b,c);
result = typecast(c.toByteArray,'uint16');
result现在包含一个整数数组,这些整数是未压缩的所需数据。我希望使用Python实现同样的功能。以下是我用来检索数据的代码:
^{pr2}$
现在我该怎么充气?我试过了zlib.decompress(io.BytesIO(data).read())
它返回一个正确长度的bytearray,但是我需要上面Matlab代码返回的整数数组。我试图解码压缩的和膨胀的bytearray,但没有成功。在
Matlab和pyodbc如何处理SQL中的图像数据类型有区别吗?如何在Python中检索整数数组?在
我在WindowsXP上使用Python2.7.2、pyodbc 3.0.5和MatlabRB。在
python读取数据库数据类型_从SQL数据库读取二进制数据(图像数据类型)并将其膨胀 Matlab vs.Python...