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"Ошибка"