Python Peewee从一个嵌套字典中获取具有特定列的表

Python Peewee从一个嵌套字典中获取具有特定列的表,python,google-analytics-api,peewee,Python,Google Analytics Api,Peewee,我有一个特定函数的输出,看起来像这样(这是谷歌分析数据,给我的网站用户的反馈) 关于活动的注意事项:活动的数量并不总是两个,有时一个用户执行了20个活动,而另一些时候他们只执行了1个,我已经尽可能简单地给出了输出(一个活动被分类为“页面视图”或“事件”,但决不能两者兼而有之) 关于原始函数的注意事项:原始函数(给出GA输出的函数)在for循环中运行,对于每个用户,所有用户的数据都存储在一个大列表中。需要明确的是,上述数据仅针对一个用户 预期输出:我想要的是一个包含两个表的数据库(如下所示)。我不

我有一个特定函数的输出,看起来像这样(这是谷歌分析数据,给我的网站用户的反馈)

关于活动的注意事项:活动的数量并不总是两个,有时一个用户执行了20个活动,而另一些时候他们只执行了1个,我已经尽可能简单地给出了输出(一个活动被分类为“页面视图”或“事件”,但决不能两者兼而有之)

关于原始函数的注意事项:原始函数(给出GA输出的函数)在for循环中运行,对于每个用户,所有用户的数据都存储在一个大列表中。需要明确的是,上述数据仅针对一个用户

预期输出:我想要的是一个包含两个表的数据库(如下所示)。我不知道如何为很多用户做到这一点,这是我需要帮助的地方。我希望能够参加会议,并对我们的用户提供反馈

表1:

SessionId   User      dataSource  deviceCategory   platform      sessionDuration 
12345         123        web             desktop                windows     00:15:12
...
表2:

ActivityTime         pageTitle   pagePath   EventCategory   eventCount   eventLabel   eventAction
2019-12-15 20:30:12  domain      webpage    NaN             NaN          NaN          NaN
2019-12-15 20:45:47  NaN         NaN        Aut             1            (not_set)    LoggedIn
PS:我知道这看起来很复杂,但很简单:我得到了一个嵌套字典的列表,我想用Peewee将其放入数据库,以便能够进行查询

如果我误解了什么,请让我知道

我想
PRAGMA
可以做到这一点,然后我应该知道如何将所有这些数据存储为.db文件(我想)?
谢谢:)

我建议将此数据存储为JSON文件,使用内置的
JSON
模块加载此数据,然后执行任何操作:

您的JSON:

{
  "sampleRate": 1,
  "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)"
    },
    {
      "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"
}
Python代码:

import json
with open('data.json', 'r', encoding='utf-8') as fw:
    obj = json.load(fw)  # your nested dictionary
    # peewee mapping
    # or
    # db insertion
    # or
    # some other stuff
    pass

非常感谢。我正在测试它。我仍然迷路了,我不知道如何告诉程序去查看列表中嵌套字典的这一特定部分,使其成为一个对象,对于列表中的每次迭代,将数据添加到数据库表中。您应该通过dict进行迭代,有时使用递归来实现嵌套值。看看这些。
import json
with open('data.json', 'r', encoding='utf-8') as fw:
    obj = json.load(fw)  # your nested dictionary
    # peewee mapping
    # or
    # db insertion
    # or
    # some other stuff
    pass