如何在python中更改ADO结果集格式?
我有以下代码使用python中的ADO COMObject查询数据库。这是连接到时间序列数据库(OSIPI),这是我们能够让Python连接到数据库的唯一方法如何在python中更改ADO结果集格式?,python,ado,Python,Ado,我有以下代码使用python中的ADO COMObject查询数据库。这是连接到时间序列数据库(OSIPI),这是我们能够让Python连接到数据库的唯一方法 from win32com.client import Dispatch oConn = Dispatch('ADODB.Connection') oRS = Dispatch('ADODB.RecordSet') oConn.ConnectionString = <my connection string> oConn.O
from win32com.client import Dispatch
oConn = Dispatch('ADODB.Connection')
oRS = Dispatch('ADODB.RecordSet')
oConn.ConnectionString = <my connection string>
oConn.Open()
oRS.ActiveConnection = oConn
if oConn.State == adStateOpen:
print "Connected to DB"
else:
raise SystemError('Database Connection Failed')
cmd = """SELECT tag, dataowner FROM pipoint WHERE tag LIKE 'TEST_TAG1%'"""
self.oRS.Open(cmd)
result = oRS.GetRows(1)
print result
result2 = oRS.GetRows(2)
print result2
if oConn.State == adStateOpen:
oConn.Close()
oConn = None
这不是预期的格式。在这种情况下,我期待着这样的事情:
result = ((u'TEST_TAG1.QTY.BLACK',u'piadmin'))
result2 = ((u'TEST_TAG1.QTY.BLACK',u'piadmin'),
(u'TEST_TAG1.QTY.PINK',u'piuser'))
有没有办法调整ADO查询的结果,使与第1行相关的所有内容都在同一元组中,而第2行中的所有内容都在同一元组中 您看到的并不是真正的Python,而是的输出,它返回一个二维数组,该数组按字段和行进行组织 幸运的是,Python具有为您进行相关更改的功能。尝试从以下位置更改代码:
result = oRS.GetRows(1)
致:
等等。您看到的不是Python,而是的输出,它返回一个二维数组,该数组按字段和行进行组织 幸运的是,Python具有为您进行相关更改的功能。尝试从以下位置更改代码:
result = oRS.GetRows(1)
致:
等等。这不起作用。它将其更改为:
[((u'TEST_TAG1.QTY.BLACK',u'TEST_TAG1.QTY.PINK'),((u'piadmin',u'piuser'),)]
Tryzip(oRS.GetRows(1)[0])
或者zip(*oRS.GetRows(1))
工作,如果您想编辑答案。谢谢,这不管用。它将其更改为:[((u'TEST_TAG1.QTY.BLACK',u'TEST_TAG1.QTY.PINK'),((u'piadmin',u'piuser'),)]
Tryzip(oRS.GetRows(1)[0])
或者zip(*oRS.GetRows(1))
工作,如果您想编辑答案。非常感谢。
result = zip(*oRS.GetRows(1))