读取Python CDispatch对象只给出了第一行

时间:2017-08-09 13:49:07

标签: python recordset

即将出现的第一个问题......刚刚开始使用Python 3.6。我正在创建一个表格数据的XML格式文档。文档对象本身有一个名为CellValues的集合。使用Dimensions(又名联通智能)我可以将此集合作为记录集读取,并使用.movenext()等循环它。 但是当我用Python阅读它时:

rs=tomdoc.tables["T0"].cellvalues()
for val in rs:
    print(val)

我只看到第一行。相反,当我连接到SqL数据库时,返回的对象是一个SQLrows类型并打印整个东西,但这个说它是CDispatch。 我怎样才能让它循环或向我展示整个记录集? 为我的无知和提前感谢道歉:)

1 个答案:

答案 0 :(得分:0)

感谢同事,我现在有了一个工作流程。 实际上,集合需要以这种方式编制索引:

rs = tomdoc.Tables("T0").CellValues

然后它可以被读取为通常会读取SQL类型的记录集:

rs.MoveFirst()
while not rs.EOF:
    rowStr = ""
    for f in rs.Fields:
        rowStr += f.value + "\t"
    print(rowStr)
    rs.MoveNext()

我不确定为什么[" T0"]给了我第一条线 - 这让我有点沮丧,让它看起来比它实际上更接近(一个遇到的快乐事情之一)当混合对象时)所以我没有研究脚本那部分的替代方案:(