python读取sqlserver数据库image字段遇到的问题~

lenhan12345 2020-04-26 09:01:53
如下代码所示,需要读取image字段的内容,只读取了一行数据,但是提示出错,错误如下 :
ok
Dataset linked
[(u'\xb0\xcd10', datetime.datetime(2020, 4, 24, 0, 6, 16), 0, 4.81, None, '\x00\x00\x00\x00\x02\xfdo-\x1e\xb8J\xe6e\x00\x00G\xb1\x00\xdbM\x9f\x00\xdbT\x80\x02\x91Z\x00\x03l`s\x04Gf\x1f\x05\xfej\xad\x07\xb4n\xfa\tjr\xd8\x0b!t\xe8\x0c\xd7wP\x0fiy\xcf\x11\x1f|\xd1\x13\xb1\x81\x1d\x16B\x87\xd2\x18\xd4\x90\x12\x1be\x98=\x1e\xd2\xa0Q!d\xa7\xb6$\xd0\xae\x12(=\xb2\x8b*\xcf\xb6\xd7.;\xbb91\xa8\xbf\xde5\x15\xc4\x828\x81\xca\xb3;\xee\xd2\x17?[\xdb`B\xc8\xe6aEY\xf1\x1fI\xa1\xf9\x8cM\xe9\xfe\xf6QV\xff\xffU\x9e\xfc Y\xe5\xf5*^-\xedma\x9a\xe5\x85e\xe2\xde\x8ej*\xd8\xccm\x97\xd35r\xba\xcd\xcbv&\xc7\x84zn\xbf\xb2}\xdb\xb7\x19\x82#\xafs\x86k\xa8\xea\x89\xd8\xa5z\x8e\x1f\xa5\xbc\x91\x8c\xa9X\x94\xf9\xaeT\x99A\xb4\xb1\x9c\xae\xbas\xa0\x1a\xbe\xc0\xa3\x87\xc1\xd8\xa6\xf4\xc4\x98\xaa`\xc7,\xae\xa8\xca\x9d\xb2\x15\xcf+\xb5\x82\xd4\x7f\xb8\x13\xd9\xea\xbb\x80\xde\n\xbe\x12\xdfT\xc1~\xde\n\xc4\x10\xdaB\xc7}\xd4\'\xca\xe9\xcd\x9f\xcd{\xc8J\xd0\xe8\xc3\xfe\xd3y\xc1(\xd6\x0b\xbfp\xd8\x9c\xbd\x8c\xdb.\xbb#\xdd\xbf\xb7\xc9\xdfv\xb3}\xe2\x07\xafG\xe3\xbe\xac\x9c\xe6O\xab~\xe8\x05\xac\xb2\xe9\xbc\xb0e\xebr\xb5a\xee\x04\xba\x1b\xef\xba\xbeh\xf1p\xc1\x80\xf3\'\xc3\x0c\xf4\x02\xc4\x14\xf5\xb8\xc5\x06\xf7o\xc6P\xf8J\xc8J\xf9%\xca\xb3\xfa\xdb\xcc\x81\xfb\xb7\xcds\xfc\x92\xcc\xad\xfdm\xc9\xd6\xfdm\xc5\xcc\xfeH\xc0\xfc\xff#\xbc+\xff#\xb8y\xff\xff\xb6\'\xff\xff\xb4\x01\xff\xff\xb0\xe9\xff#\xacp\xff#\xa6\xda\xfeH\x9f\xcd\xfdm\x98\'\xfc\x92\x91r\xfc\x92\x8cv\xfa\xdb\x89t\xfa\x00\x88\xc4\xf8J\x8a:\xf7o\x8dh\xf5\xb8\x90\x80\xf4\x02\x92d\xf2L\x92\xe8\xf0\x95\x91\x88\xef\xba\x8eZ\xee\x04\x8bB\xebr\x89\xb6\xe9\xbc\x89\xb6\xe7*\x8bn\xe5t\x8e.\xe2\xe2\x8f\xd0\xe0Q\x8f6\xdd\xbf\x8c\x08\xdb.\x86\xf6\xd8\x9c\x81I\xd5/{\xc9\xd2\x9ev\xb6\xcf1r\xac\xcc\xa0o\x10\xc93jk\xc5\xc6c\xcd\xc2Y[\xce\xbf\xc8R\x86\xbc[H\xfb\xb8\x13@b\xb4\xa79l\xb1:3g\xac\xf2-\xe7\xa9\x85\'\xe2\xa6\x19!D\xa1\xd1\x19\xc9\x9ed\x11s\x9a\xf7\x08\xf0\x97\x8a\x02\x94\x93C\x00\x00\x8f\xd6\x014\x8b\x8e\x060\x88!\x0e\x19\x83\xd9\x16-\x80m\x1c\xf8|%"\xa4w\xdd\'\x06tp*\x8dp(-yl\xbb0\xbdht4\x85e\x078za\x9a;\xd4]R=\xceY\n=\x8cT\xc2:\x8aQV5wM\xe9/\xe1J|*\x1fG\x0f%dC\xa3"\n@6 <;\xee\x1f`8\x81\x1e\xc65\x15\x1d:1\xa8\x1b\x82/\x16\x19\x9d+\xaa\x18\x7f(=\x18i%\xab\x1a\xe7"?\x1e\xdc\x1f\xad#\xac\x1d\x1c)C\x1a\x8a/\x1b\x17\xf93Q\x15g6j\x12\xd58\x90\x11\x1f:\x06\x0e\x8e;$\x0c\xd7=`\x0b!?\xb2\tjA\xc2\x07\xb4B\xf6\x05\xfeC"\x05#A\xc2\x04G?\x86\x02\x91<\xc6\x01\xb69\xae\x00\xdb7\x04\x00\xdb6\x96\x00\x007\x1a\x00\x008\xd2\x00\x00:\xf8\x00\x00?.\x00\x00B\xf6', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.989989995956421, 45.1199951171875, 74.89999389648438, False, True, None, None, 0.0, 1.0, -4, None, 1.0, None, None, None, None, None, None, None, None, None, None, None, None)]

Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\readimage1.py", line 48, in <module>
img = Image.open(img_file)
File "C:\Python27\lib\site-packages\PIL\Image.py", line 2309, in open
% (filename if filename else fp))
IOError: cannot identify image file <_io.BytesIO object at 0x07B49720>
Dataset linked下面的内容是我打印出来的这条记录的内容,最要读取的就是第6个字段的2内容,错误信息如上面所示。。具体代码如下:

#coding=utf-8
import io
import pymssql
import matplotlib.pyplot as plot
import numpy as np
from PIL import Image

class MSSQL:
def __init__(self,host,user,pwd,db):
self.host = host
self.user = user
self.pwd = pwd
self.db = db

def __GetConnect(self):
if not self.db:
raise(NameError,"没有设置数据库信息")
self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
cur = self.conn.cursor()
if not cur:
raise(NameError,"连接数据库失败")
else:
print("Dataset linked")
return cur

def ExecQuery(self,sql):
cur = self.__GetConnect()
cur.execute(sql)
resList = cur.fetchall()

#查询完毕后必须关闭连接
self.conn.close()
return resList

def ExecNonQuery(self,sql):
cur = self.__GetConnect()
cur.execute(sql)
self.conn.commit()
self.conn.close()



ms = MSSQL(host="**",user="**",pwd="**",db="**")
print("ok")
reslist = ms.ExecQuery("select top 1 * from table1")
img_file = io.BytesIO(reslist[0][5]) #对应image的数据项序号
print reslist
img = Image.open(img_file)
plot.figure()
plot.imshow(img,cmap="gray_r")
plot.show()
那位高手知道什么原因,望解答一下。。。
...全文
305 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lenhan12345 2020-04-27
  • 打赏
  • 举报
回复
那位高手知道是什么问题呀?
tianfang 2020-04-27
  • 打赏
  • 举报
回复
python2 的环境,python3的代码
lenhan12345 2020-04-26
  • 打赏
  • 举报
回复
有人吗?有人吗?
lenhan12345 2020-04-26
  • 打赏
  • 举报
回复
不改让沉了,高手看看吧。~~

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧