【问题标题】:Trying to Parse JSON using Pandas in the YoutubeAnalytics Api and Convert it CSV尝试在 YoutubeAnalytics Api 中使用 Pandas 解析 JSON 并将其转换为 CSV
【发布时间】:2021-01-28 08:26:59
【问题描述】:

我正在尝试使用 Youtube 分析和报告 API 从此处Google Reference 下载我的 youtube 数据。我正在使用来自谷歌的 Python 代码来下载这个工作正常的数据。数据以JSON格式检索如下图。

rawdata.json -

{
  "kind": "youtubeAnalytics#resultTable",
  "columnHeaders": [
    {
      "name": "day",
      "columnType": "DIMENSION",
      "dataType": "STRING"
    },
    {
      "name": "views",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    },
    {
      "name": "estimatedMinutesWatched",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    },
    {
      "name": "averageViewDuration",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    },
    {
      "name": "averageViewPercentage",
      "columnType": "METRIC",
      "dataType": "FLOAT"
    },
    {
      "name": "subscribersGained",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    }
  ],
  "rows": [
    [
      "2020-10-01",
      445,
      1068,
      144,
      38.78,
      3
    ],
    [
      "2020-10-02",
      406,
      905,
      133,
      34.94,
      2
    ],
    [
      "2020-10-03",
      466,
      1042,
      134,
      34.77,
      6
    ],
    [
      "2020-10-04",
      427,
      1006,
      141,
      36.48,
      3
    ],
    [
      "2020-10-05",
      379,
      964,
      152,
      39.48,
      2
    ]
  ]
}

我正在尝试将此 JSON 转换为 CSV 格式,但到目前为止没有运气。

这是我用来规范化和创建数据框但没有运气的 python 代码。

import json
import pandas as pd
from pandas import json_normalize 

with open('rawdata.json') as json_file:
    data = json.load(json_file)
    #print (data)

df = json_normalize(data['rows'])
print(df)

我正在尝试以这种格式获得最终输出。

非常感谢任何帮助或指导。

编辑:Suraj S 的回答。这对我有用。

import json
import pandas as pd
from pandas import json_normalize 

with open('rawdata.json') as json_file:
    data = json.load(json_file)
    #print (data)

df = pd.DataFrame(data['rows'],columns=['day','views','comments','likes','dislikes','estimatedMinutesWatched','averageViewDuration','subscribersGained'])

print(df)

【问题讨论】:

    标签: python json pandas dataframe


    【解决方案1】:

    看起来你想使用pd.read_json(___, orient='split')

    您必须将输入组织到一个包含三个元素的字典中,并以列表作为其值:“列”、“索引”和“数据”。你应该写一行来准备这些数据:

    对于“列”,只需将“名称”放入其自己的列表中。对于“数据”,您无需更改任何我认为不需要的内容,只需确保将该列表重命名为“数据”即可。

    您可以使用一些垃圾“第 1 行”、“第 2 行”...元素作为“索引”,但对您来说最重要的是“列”和“数据”。

    您可以更深入地查看here

    【讨论】:

      【解决方案2】:
      pd.DataFrame(json_file['rows'])
      

      如果需要,您可以根据需要添加列名

       pd.DataFrame(json_file['rows'],columns=[a,b,c,...])
      

      【讨论】:

      • 太棒了!那是为我做的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 2021-12-28
      • 2018-11-06
      • 2022-01-26
      • 1970-01-01
      • 2019-05-24
      相关资源
      最近更新 更多