Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中更改ADO结果集格式?_Python_Ado - Fatal编程技术网

如何在python中更改ADO结果集格式?

如何在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

我有以下代码使用python中的ADO COMObject查询数据库。这是连接到时间序列数据库(OSIPI),这是我们能够让Python连接到数据库的唯一方法

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'),)]
Try
zip(oRS.GetRows(1)[0])
或者
zip(*oRS.GetRows(1))
工作,如果您想编辑答案。谢谢,这不管用。它将其更改为:
[((u'TEST_TAG1.QTY.BLACK',u'TEST_TAG1.QTY.PINK'),((u'piadmin',u'piuser'),)]
Try
zip(oRS.GetRows(1)[0])
或者
zip(*oRS.GetRows(1))
工作,如果您想编辑答案。非常感谢。
result = zip(*oRS.GetRows(1))