PERCO The Python instance can not be converted to a COM object

кто нибудь работал в Python через COM с библиотеками? Подключение проходи хорошо, а вот когда хочу отправить xml выходит ошибка. В чем может быть проблема, в C# все отрабатывает отлично.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
from win32com.client.dynamic import Dispatch
from ctypes import *
from xml.dom import minidom
from lxml import objectify

oPERCo = Dispatch("PERCo_S20_SDK.ExchangeMain")

Host = "1.1.1.1"
Port = "211"
Login = "Admin"
Pass = ""

doc = minidom.parse("E:/test.xml")
xml_str = doc.toprettyxml(indent="  ")

iRet = oPERCo.SetConnect(Host, Port, Login, Pass)

if iRet == 0:
    print u"Подключено"
    oPERCo.SendData(xml_str)
else:
    print u"Ошибка"
File "<COMObject PERCo_S20_SDK.ExchangeMain>", line 2, in SendData
TypeError: The Python instance can not be converted to a COM object

Ответы (1 шт):

Автор решения: KazakOFF Lab

Решение, для отправки xml в perco используем Msxml2.

import os, sys, ctypes
from win32com.client.dynamic import Dispatch
import xml.dom.minidom as minidom

dom = Dispatch('Msxml2.DOMDocument.6.0')
oPERCo = Dispatch("PERCo_S20_SDK.ExchangeMain")

Host = "1.1.1.1"
Port = "211"
Login = "Admin"
Pass = ""

doc = minidom.Document()

dom.load("test.xml")

iRet = oPERCo.SetConnect(Host, Port, Login, Pass)

if iRet == 0:
    print u"Подключено"
    oPERCo.SendData(dom)
else:
    print u"Ошибка"
→ Ссылка