2016-12-21 4 views
1

Я начинающий пользователь Python, и я столкнулся с выходом функции, которую я не понимаю. Я не могу дать весь код, потому что некоторые из них - это IP в моей компании.Словарь возврата функции Python?

В основном я использую библиотеку, написанную одним из наших разработчиков, чтобы вытащить метрику из хранилища данных. Я хочу использовать это значение метрики в другом приложении, когда я получу значение, которое я передам в свою собственную БД.

Моя проблема заключается в том, что я не понимаю вывод функции, которую я использую, чтобы на самом деле экстраполировать значение, которое я хочу.

Если кто-то, у кого больше опыта на Python, может сказать мне, что возвращает функция, как лучшее, что я могу сказать, это создание dict, но я не совсем понимаю, как и где. Я должен добавить, что это функция внутри Lib

def get(self, **kwargs): 
    if 'SchemaName' not in kwargs: 
     kwargs['SchemaName'] = self.find_schema_by_params(**kwargs) 

    if 'Stat' in kwargs and kwargs['Stat'] not in MWS.VALID_Stat: 
     raise MWSException("Incorrect Stat value: %s" % kwargs['Stat']) 

    if 'Period' in kwargs and kwargs['Period'] not in MWS.VALID_Period: 
     raise MWSException("Incorrect Period value: %s" % kwargs['Period']) 

    self._validate_schema(kwargs, MWS.DEFAULT_GET_PARAMETERS) 
    self._encode_start_time(kwargs) 

    if 'EndTime' not in kwargs: 
    if kwargs['StartTime'].startswith('-P'): 
      kwargs['EndTime'] = '-P00D' 
     else: 
      kwargs['EndTime'] = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.000Z") 

    return self._mws_action('GetMetricData', **kwargs)['StatisticSeries'] 
+4

Не уверен, что вы просите. Он вызывает метод '_mw_action', получая значение« StatisticSeries »из возвращаемых данных, а затем возвращаю его. –

+0

вы всегда можете выяснить тип данных возвращаемого значения с помощью 'type (my_object.my_method (arguments))' –

ответ

1

По-видимому, _mws_action() это метод, который передается строка, «GetMetricData» и те же ключевые аргументы в качестве способа получить (с некоторыми изменениями). _mws_action() возвращает словарь, и вы возвращаете элемент «StatisticSeries» этого словаря.

**kwargs преобразует словарь в/из аргументов ключевого слова. Таким образом, вы можете позвонить получить как

get(SchemaName='schema', Stat='somestat', EndTime="-P00D") 

и kwargs будет:

{'SchemaName': 'schema', 'Stat':'somestat', 'EndTime':"-P00D"} 
+0

Огромная благодарность за быстрый ответ, поэтому, если я использую цикл для итерации kwargs, я должен уметь видеть значения ? – pyth0nBen

+0

Точно. для k в kwargs: print k, kwargs [k] – mlv

+0

, поэтому я могу повторять «ключи: значения» ввода словаря i, но как бы повторить словарь, который возвращается? – pyth0nBen

Смежные вопросы