Невозможно получить указанные c данные из значений ключа словаря внутри списка - PullRequest
2 голосов
/ 16 января 2020

Я новичок в Python и успешно могу получить доступ к sendgrid API:

from datetime import date
today = date.today().strftime('%Y-%m-%d')
print("Today's date:", today)

import http.client

conn = http.client.HTTPSConnection("api.sendgrid.com")

payload = "{}"

headers = { 'authorization': "Bearer SG.**.**" }

conn.request("GET", "/v3/stats?aggregated_by=day&start_date={}".format(today), payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

Вывод:

Today's date: 2020-01-16
[{"date":"2020-01-16","stats":[{"metrics":{"blocks":0,"bounce_drops":5,"bounces":9,"clicks":248,"deferred":0,"delivered":1606,"invalid_emails":4,"opens":2050,"processed":0,"requests":1624,"spam_report_drops":0,"spam_reports":0,"unique_clicks":200,"unique_opens":913,"unsubscribe_drops":0,"unsubscribes":0}}]},{"date":"2020-01-17","stats":[{"metrics":{"blocks":0,"bounce_drops":0,"bounces":0,"clicks":0,"deferred":0,"delivered":0,"invalid_emails":0,"opens":0,"processed":0,"requests":0,"spam_report_drops":0,"spam_reports":0,"unique_clicks":0,"unique_opens":0,"unsubscribe_drops":0,"unsubscribes":0}}]}]

Проблема, с которой я сталкиваюсь, заключается в том, что по какой-то причине Вы можете видеть в выводе выше, я получаю пустые данные на дату завтрашнего дня. Я не знаю, почему я получаю данные о завтрашнем дне, где я специально упомянул «сегодня». Я попытался упомянуть дату окончания, но я не получил никаких изменений в выводе.

Я исправил следующую строку:

conn.request("GET", "/v3/stats?aggregated_by=day&start_date={d}&end_date{d}".format(d=today), payload, headers)

Тогда вывод:

Today's date: 2020-01-16
[{"date":"2020-01-16","stats":[{"metrics":{"blocks":0,"bounce_drops":6,"bounces":9,"clicks":253,"deferred":0,"delivered":1623,"invalid_emails":4,"opens":2099,"processed":0,"requests":1642,"spam_report_drops":0,"spam_reports":0,"unique_clicks":205,"unique_opens":931,"unsubscribe_drops":0,"unsubscribes":0}}]},{"date":"2020-01-17","stats":[{"metrics":{"blocks":0,"bounce_drops":0,"bounces":0,"clicks":0,"deferred":0,"delivered":0,"invalid_emails":0,"opens":0,"processed":0,"requests":0,"spam_report_drops":0,"spam_reports":0,"unique_clicks":0,"unique_opens":0,"unsubscribe_drops":0,"unsubscribes":0}}]}]
  1. Что я должен изменить, чтобы я получил только выходные данные на сегодня, а не на завтра?

  2. Как мне нарезать выходные данные в формате json таким образом, чтобы я получал эти метрики в табличной форме, чтобы я мог их экспортировать к csv?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...