使用 pyodbc 从 MSSQL 中提取值
Extracting Values from MSSQL using pyodbc
我是 Python 的新手,我很难将 MSSQL 中列的值读取到列表中。输出的每个值都有一个文本 u',编码函数无法删除相同的文本
例如,如果 column name = 'Cities" and Table Name = "World City"- 当我执行附加代码时,我得到如下输出
实际输出:[(u'chicago', ),(u'dallas', ),(u'kansas', )]
预期输出:[芝加哥、达拉斯、堪萨斯]
import pyodbc
def colread(columnname,tablename,listname):
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
"Server= ABC;"
"Database=City;"
"Trusted_Connection=yes;")
cursor = cnxn.cursor()
sql = "SELECT " + columnname + " FROM " + tablename
cursor.execute(sql)
data = cursor.fetchall()
columnlist = []
listname = []
for row in data:
c = row
columnlist.append(c)
columnlist = [item for item in columnlist if item]
listname = columnlist
listname = [item.encode('ascii','ignore') for item in columnlist]
cnxn.close()
return listname
CITYDB = colread('Cities','World_City','citydb')
print CITYDB[0:10]
注意:我了解了 SQL 注入问题,一旦我解决了这个问题,我就会解决这个问题。
您的数据是一元组。您应该能够做到这一点以获取所需格式的数据:
columnlist = [item[0] for item in columnlist if item]
如果您信任程序的输入,您可以动态提供列和 table 名称。
我是 Python 的新手,我很难将 MSSQL 中列的值读取到列表中。输出的每个值都有一个文本 u',编码函数无法删除相同的文本
例如,如果 column name = 'Cities" and Table Name = "World City"- 当我执行附加代码时,我得到如下输出
实际输出:[(u'chicago', ),(u'dallas', ),(u'kansas', )] 预期输出:[芝加哥、达拉斯、堪萨斯]
import pyodbc
def colread(columnname,tablename,listname):
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
"Server= ABC;"
"Database=City;"
"Trusted_Connection=yes;")
cursor = cnxn.cursor()
sql = "SELECT " + columnname + " FROM " + tablename
cursor.execute(sql)
data = cursor.fetchall()
columnlist = []
listname = []
for row in data:
c = row
columnlist.append(c)
columnlist = [item for item in columnlist if item]
listname = columnlist
listname = [item.encode('ascii','ignore') for item in columnlist]
cnxn.close()
return listname
CITYDB = colread('Cities','World_City','citydb')
print CITYDB[0:10]
注意:我了解了 SQL 注入问题,一旦我解决了这个问题,我就会解决这个问题。
您的数据是一元组。您应该能够做到这一点以获取所需格式的数据:
columnlist = [item[0] for item in columnlist if item]
如果您信任程序的输入,您可以动态提供列和 table 名称。