Peewee: выделите указанную c часть вложенного словаря для объекта peewee и просмотрите его в таблице. - PullRequest
0 голосов
/ 27 января 2020

Есть вопросы, связанные с этим, но я не смог найти решение. Если есть, возможно, я более чем счастлив взглянуть на него

У меня есть словарь, похожий на этот (я получаю данные из Google Analytics):

{'activityTime': '2020-01-20T17:42:20.540598Z', 
'source': '(direct)', 
'medium': '(none)', 
'channelGrouping': 'Direct', 
'campaign': '(not set)', 
'keyword': '(not set)', 
'hostname': 'company.sitename.com', 
'landingPagePath': '/results-delay/history', 
'activityType': 'PAGEVIEW', 
'customDimension': [{'index': 1}], 
'pageview': {'pagePath': '/thepage-path', 'pageTitle': 'comapany.domain'}}

или

                              {'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': 'lumwana.barrick.max-mine.com',
                               'keyword': '(not set)',
                               'landingPagePath': '/login',
                               'medium': '(none)',
                               'source': '(direct)'}

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

У меня есть такой класс:

db = SqliteDatabase('database')

class Activity(Model):
    activityTime = DateTimeField()
    pageTitle = CharField(null=False)
    pagePath = CharField(null=False)
    eventCategory = CharField(null=False)
    eventLabel = CharField(null=False)
    eventAction = CharField(null=False)

    class Meta:
        database = db

При запуске

keys = dict_activity['sessions'] # code to get this dictionary mentioned above

for i in range(0,len(keys)):
    session = keys[i]
    act = session['activities']
    for activity in range(0, len(act)):
        Activity.create(**act[activity])
        print(Activity.activityTime)

я получаю сообщение об ошибке:

peewee.IntegrityError: NOT NULL constraint failed: activity.pageTitle

Я бы нравится видеть, что было сохранено, чтобы подтвердить, что оно было сохранено правильно

Любая помощь будет оценена

...