распечатайте метрику списка с помощью list_metrics() из api облачного ведения журнала (выражение генератора 0x3e9bfe2fb4c0>)

# #python #google-cloud-functions #google-cloud-logging #generator-expression

Вопрос:

Я хочу зарегистрировать все показатели на основе журналов, которые у меня есть в моем проекте gcp, с помощью облачной функции на python. Я пытаюсь запустить следующий пример кода:

 for metric in client.list_metrics():  # API call(s)
    #do_something_with(metric)
    print(metric)
 

У меня есть следующий вывод журнала:

"<google.cloud.logging_v2.metric.Metric object at 0x3e9bfe2fb4c0>"

Как мне это прочесть? Я пытался list() json.loads() , json.dumps() но , кажется, ничего не получается.

Комментарии:

1. Я только что заметил эту часть вашего вопроса — > «Я проголосовал по этому вопросу, и я не понимаю, почему».. Я не один из тех, кто голосует против, поэтому я не уверен в их аргументации, но я думаю, что это потому, что ваш вопрос касается основ Python в целом. Что такое объекты и как с ними следует обращаться, объясняется в каждом базовом курсе. В сочетании с тем фактом, что его можно легко погуглить, я думаю, что это может быть причиной снижения голосов.

Ответ №1:

Вы возвращаете объект python:

«объект logging_v2.metric.Metric в 0x3e9bfe2fb4c0>»

Согласно этой документации, он обладает некоторыми свойствами.

Так что что-то вроде

 print(metric.name)
 

должно сработать на вас.

Комментарии:

1. Есть ли способ исследовать подобный объект, не имея доступа к документации? Или вам нужен доступ к документу? Как я могу узнать ключ, например, для получения глобального объекта? Если я хочу распечатать весь список напрямую?

2. Извините, что добавил еще один комментарий; metric.name работает, но нет metric.filter

3. Вы всегда можете использовать print(dir(метрика)), но это не всегда будет полностью объяснено. В большинстве случаев я бы просто доверял документации, особенно поставщикам размером с Google.

4. В качестве примечания: имхо всегда лучше в подобных сценариях отлаживать и пошагово выполнять код, где это возможно. Dir поможет вам далеко продвинуться, но, например, не проводит различия между свойствами и методами, которые вы должны выяснить сами.