Python, webservice, soap

Здравствуйте!
Имеется следующий код:

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

from suds.client import Client
from suds.bindings import binding
import logging

time1 = datetime.datetime.strptime("2016-10-01 00:00", "%Y-%m-%d %H:%M");
time2 = datetime.datetime.strptime("2017-01-31 00:00", "%Y-%m-%d %H:%M");

URL = 'http://*/api.asmx?WSDL'

USERNAME = 'USERNAME'
PASSWORD = 'PASSWORD'

# Just for debugging purposes.
logging.basicConfig(level=logging.INFO);
logging.getLogger('suds.client').setLevel(logging.DEBUG);
logging.getLogger('suds.transport.http').setLevel(logging.DEBUG);
binding.envns = ('SOAP-ENV', 'http://www.w3.org/2003/05/soap-envelope');

client = Client(URL);
client.service.Login(USERNAME, PASSWORD);

#print client.service.GetMeasurePointConsumption(1111, time1, time2, "Month");
print client.service.GetNodeListExtended(0);

В GetNodeListExtended получаю не все параметры, хотя тот же самый код на PS возвращает нужные мне данные с точками учета. Пробовал разные переменные, в разных форматах.
Так же пробовал, разные библиотеки pySoap, simplesoap, suds. Помогите, пожалуйста, разобраться. Спасибо!

Покажите, что у вас выводится в консоли.
Мы запустили ваш пример и столкнулись с той же проблемой. В методы GetNodeListExtended и GetMeasurePointListExtended нельзя передать параметр (флаг запрашиваемой информации).
Выводится следующее сообщение TypeError: GetNodeListExtended() takes 0 positional arguments but 1 was given.
Хотя метод GetNodeByIdExtended успешно работает, можете использовать его.

С возвратом нет никаких проблем. Он есть, но не полный.

(reply){
ErrorMessage = None
ErrorCode = “None”
NodeList =
(ArrayOfNode){
Node =
(Node){
Id = ****
Title = “**"
Address = "

Number = ****
Comment = None
ResponsibleName = None
ResponsiblePhone = None
Type = “Node”
},
(Node){

Использовал разные библиотеки, вводил в качестве параметра уже всё что можно. Победить не удалось. Сделал на request и успокоился.

def object_to_dict(obj):
    if isinstance(obj, (str, unicode, bool, int, long, float, datetime.datetime, datetime.date, datetime.time)):
        return obj
    data_dict = {}
    try:
        all_keys = obj.__dict__.keys()  # vars(obj).keys();
    except AttributeError:
        return obj
    fields = [k for k in all_keys if not k.startswith('_')]
    for field in fields:
        val = getattr(obj, field);
        if isinstance(val, (list, tuple)):
            data_dict[field] = []
            for item in val:
                data_dict[field].append(object_to_dict(item));
        else:
            data_dict[field] = object_to_dict(val);
    return data_dict


def createFromBody(action):
    sA = u"""<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>%s
</soap12:Body>
</soap12:Envelope>"""%(action);
    return sA

	
class pyLers:
    def __init__(self, url='http://*.*.*.*/api.asmx', login=u'demo', password=u'demo', debug=False):
        print('start', datetime.datetime.now());
        self.login = login
        self.password = password
        self.url = url
        self.headers = {
            'Host': self.url.split('/')[2],
            'Content-Type': 'text/xml; charset=utf-8',
        }
        self.cookies = None

        self.Login();

    def send_req(self, action, data):
        self.headers['SOAPAction'] = action
        self.headers['Content-Length'] = str(len(data));
        return requests.post(self.url, headers=self.headers, data=data.encode('utf-8'), cookies=self.cookies);

    def Login(self):
        print('Loing', datetime.datetime.now());
        SoapBody = u"""<userName xmlns="http://www.lers.ru/website/api">%s</userName><password xmlns="http://www.lers.ru/website/api">%s</password>"""%(self.login, self.password);
        self.headers['SOAPAction'] = 'http://www.lers.ru/website/api/Login'
        self.headers['Content-Length'] = str(len(createFromBody(SoapBody)));
        req = requests.post(self.url, headers=self.headers, data=createFromBody(SoapBody).encode('utf-8'));
        self.cookies = req.cookies

    def GetNodeListExtended(self, flags):
        print('action_GetNodeListExtended', datetime.datetime.now());
        SoapBody = u"""<flags xmlns="http://www.lers.ru/website/api">%s</flags>"""%(flags);
        req = self.send_req('http://www.lers.ru/website/api/GetNodeListExtended', createFromBody(SoapBody));
        trree = etree.fromstring(req.content);
        for a in object_to_dict(trree)[0][0][2]:
            print(a[0].text);

pyLers().GetNodeListExtended('Systems')