Peewee ORM sqlite создать базу данных со списком вложенных словарей из Google Analytics - PullRequest
0 голосов
/ 24 января 2020

У меня простая проблема. Я новичок в объектно-ориентированном программировании. У меня есть один большой список вложенных словарей, который должен быть представлен в нескольких таблицах. Чего я не понимаю, так это как я могу использовать объекты, чтобы сделать это проще.

Я получаю данные Google Analytics для каждого пользователя.

LOGI C МОЕГО КОДА:

  1. получить данные для одного пользователя (эти данные имеют следующий формат:
{'sampleRate': 1,
                               # Pageview activity
                 'sessions': [{'activityTime': '2020-01-08T15:48:38.012671Z',
                               'activityType': 'PAGEVIEW',
                               'campaign': '(not set)',
                               'channelGrouping': 'Direct',
                               'customDimension': [{'index': 1}],
                               'hostname': 'company.domain.com',
                               'keyword': '(not set)',
                               'landingPagePath': '/login',
                               'medium': '(none)',
                               'pageview': {'pagePath': '/login',
                                            'pageTitle': 'titleofthepage'},
                               'source': '(direct)'},

                              # Event activity
                              {'activityTime': '2020-01-08T15:48:37.915105Z',
                               'activityType': 'EVENT',
                               'campaign': '(not set)',
                               'channelGrouping': 'Direct',
                               'customDimension': [{'index': 1}],
                               'event': {'eventAction': 'Successfully Logged '
                                                        'In',
                                         'eventCategory': 'Auth',
                                         'eventCount': '1',
                                         'eventLabel': '(not set)'},
                               'hostname': 'company.domain.com',
                               'keyword': '(not set)',
                               'landingPagePath': '/login',
                               'medium': '(none)',
                               'source': '(direct)'}]
               'dataSource': 'web',
               'deviceCategory': 'desktop',
               'platform': 'Windows',
               'sessionDate': '2020-01-08',
               'sessionId': '1578491317'}
(Это, вероятно, где я могу реализовать объектно-ориентированное программирование) Теперь я перебираю список пользователей и сохраняю выходные данные каждого пользователя (в формате, указанном в шаге 1) в списке Это создает один большой список шагов1

ЧТО Я ХОЧУ:

Мне нужны две таблицы в конце дня, чтобы выполнять запросы с Peewee:

Таблица 1:

SessionId   User      dataSource  deviceCategory   platform      sessionDuration 
12345       123       web         desktop          windows       00:15:12
14824       188       web         desktop          Linux         01:04:48
...

Таблица 2:

ActivityTime  Session  pageTitle   pagePath   EventCategory   eventCount   eventLabel   eventAction
20:30:12      12345    domain      webpage    NaN             NaN          NaN          NaN
20:45:47      12345    NaN         NaN        Aut             1            (not_set)    LoggedIn
21:12:48      14824    NaN         NaN        Aut             2            (not_set)    LoggedIn

На самом деле я не знаю, как к этому подойти .. потому что я знаю, что объектно-ориентированное программирование / ORM может сделать это чище и намного сильнее Pythioni c. Я не ожидаю кода в качестве ответа, потому что вопрос довольно расплывчатый, но любая логика c поможет. Кажется, я не могу найти способ сделать это 1031

...