Как назначить вложенные элементы словаря переменным класса - PullRequest
0 голосов
/ 25 января 2020

Я получил этот вложенный словарь от Google Analytics, он описывает, что пользователь сделал на моем сайте. Другими словами, это вся информация, которую я получаю за одного пользователя. У нас более 1000 пользователей, у каждого из которых есть словарь, похожий на этот:

{'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'},
              {'activities': [{'activityTime': '2019-12-28T21:58:48.993944Z',
                               'activityType': 'PAGEVIEW',
                               'campaign': '(not set)',
                                .... etc

Я новичок в объектно-ориентированном программировании.

Я хотел бы создать класс, в котором я могу хранить эти данные для каждого пользователя под определенными атрибутами.

Например, что-то вроде этого:

class Session():

    def __init__(self):
        self.sessionId = "code to get this user's data from the nested dictionary"
        self.deviceCategory = "code to get this user's data from the nested dictionary"
        self.platform = "code to get this user's data from the nested dictionary"
        self.dataSource = "code to get this user's data from the nested dictionary"

    class Activity():
        def __init__(self):
            self.activityTime = "code to get this user's data from the nested dictionary"
            self.hostName = "code to get this user's data from the nested dictionary"
            self.landingPagePath = "code to get this user's data from the nested dictionary"
            self.activityType = "code to get this user's data from the nested dictionary"

        class Pageview():

            def __init__(self):
                self.pagePath = "code to get this user's data from the nested dictionary"
                self.pageTitle = "code to get this user's data from the nested dictionary"

        class Event():

            def __init__(self):
                self.eventCategory = "code to get this user's data from the nested dictionary"
                self.eventAction = "code to get this user's data from the nested dictionary"
                self.eventLabel = "code to get this user's data from the nested dictionary"
                self.eventCount = "code to get this user's data from the nested dictionary"


    user_list = ['12', '16', '28', '34']
    for user in user_list:
        getGoogleAnalytics = nestedDictionaryforUser(user) # this I can do

        # now use this dictionary as data to add to the objects
        # I don't know how to add each user's details to become an object I can work with later

Скорее всего, Я что-то упустил или моя структура класса совершенно неверна. Буду очень признателен за помощь.

Рад ответить на любые вопросы

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