my_function.__name__
Используя __name__
предпочтительный метод, поскольку он применяется однородно. В отличие от этого func_name
, это работает над встроенными функциями также:
>>> import time
>>> time.time.func_name
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: 'builtin_function_or_method' object has no attribute 'func_name'
>>> time.time.__name__
'time'
Также двойные подчеркивания указывают читателю, это - специальный атрибут. В качестве награды классы и модули имеют __name__
атрибут также, таким образом, Вы только имеете, помнят одно специальное имя.
Основная проблема заключается в том, что код XML, возвращаемый этой службой не включает корневой узел, что недопустимо. Я исправил это, просто заключив вывод в узел
.
import urllib
from xml.etree import ElementTree
url = 'http://69.36.9.147:8090/clientes/SMS_API_OUT.jsp?codigo=ABCDEFGH&cliente=XX'
xmldata = '<root>' + urllib.urlopen(url).read() + '</root>'
tree = ElementTree.fromstring(xmldata)
codigo = tree.find('codigo').text
print codigo
Вы можете использовать любой анализатор, какой захотите, но здесь я использовал ElementTree для получения значения.
XML-документ состоит из одного элемента документа верхнего уровня, а затем нескольких подэлементов. Ваш XML-фрагмент содержит несколько элементов верхнего уровня, что не разрешено стандартом XML.
Попробуйте вернуть что-нибудь вроде:
<result><codigo>3</codigo><valor></valor><operador>Dummy</operador></result>
Я заключил весь ответ в тег
.