Я новичок в 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}}]}]
Что я должен изменить, чтобы я получил только выходные данные на сегодня, а не на завтра?
Как мне нарезать выходные данные в формате json таким образом, чтобы я получал эти метрики в табличной форме, чтобы я мог их экспортировать к csv?