无法从DB返回值中删除字符

时间:2016-05-10 14:20:06

标签: python sql-server numpy

我对python相对较新,但遇到了一些困难。 我使用pyodby来执行sql-server中的存储过程。 结果似乎不像预期的那样返回整数,而是括号中的行数。 IE:(322,) 当我试图去除值时,我得到一个错误。我假设我有错误的数据类型?谢谢你的帮助

TypeError:期望的字符串或缓冲区

import pyodbc
import re
import numpy as np
sqlquery = "exec MyDB.dbo.spRowCounts"
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=1.2.3.4\SQLEXPRESS;DATABASE=MyDB;UID=MYUSER;PWD=MYPASSWORD')
cursor = cnxn.cursor()
rows = cursor.execute(sqlquery)

print rows;
for row in rows:
    print row
    queuerow = row
    print queuerow
    rowd = re.sub(r'\D', "", queuerow)
    print rowd

1 个答案:

答案 0 :(得分:0)

如果queuerow'(322,)'在打印时意味着它是一个元组,所以显然正则表达式无法修改它,你只需要进行queuerow [0]。当你有一个TypeError时,最好的调试方法就是使用内置类型()。