【问题标题】:I am having trouble converting my nested json into a dataframe. I am getting the json from an API and want it in a dataframe我无法将嵌套的 json 转换为数据框。我从 API 获取 json 并希望它在数据框中
【发布时间】:2020-01-26 19:50:12
【问题描述】:

此代码来自 Sportradar API。 API 将数据输出为 JSON 或 XML;下面是我尝试将 JSON 转换为数据框。

import numpy as np
import pandas as pd
import http.client
import json
from pandas.io.json import json_normalize

#API Call including my key
conn = http.client.HTTPSConnection("api.sportradar.us")

conn.request("GET", "/nfl/official/trial/v5/en/players/0acdcd3b-5442-4311-a139-ae7c506faf88/profile.json?api_key=99s3ewmn5rrdrd9r3v5wrfgd")
#conn.request("GET", "/nfl/official/trial/v5/en/games/b7aeb58f-7987-4202-bc41-3ad9a5b83fa4/pbp.json?api_key=99s3ewmn5rrdrd9r3v5wrfgd")
#conn.request("GET", "/nfl/official/trial/v5/en/teams/0d855753-ea21-4953-89f9-0e20aff9eb73/full_roster.json?api_key=99s3ewmn5rrdrd9r3v5wrfgd")
#conn.request("GET", "/nfl/official/trial/v5/en/games/030d37cf-b896-4f10-b16e-2a5120fef6cf/pbp.json?api_key=99s3ewmn5rrdrd9r3v5wrfgd")
res = conn.getresponse()
data = res.read()
data_dec = data.decode("utf-8")

json_data = json.loads(data_dec)
flat_data = json_normalize(json_data)

print(json_data)
df = pd.DataFrame.from_records(flat_data)
df2 = pd.DataFrame.from_dict(json_data, orient='index')
df2.reset_index(level=0, inplace=True)

#The closest thing to a dataframe I can get
df.head()

【问题讨论】:

  • 您遇到的具体问题是什么?您当前代码的结果与您想要/期望的结果有何不同?您收到任何错误消息吗?

标签: json python-3.x pandas api dataframe


【解决方案1】:

为什么不使用公开可用和维护的 Python Wrapper。 见link

【讨论】:

  • 你——我的朋友——太棒了。谢谢!
猜你喜欢
  • 2019-07-08
  • 1970-01-01
  • 2017-03-21
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2019-11-24
相关资源
最近更新 更多