如何使用 Pandas 解析复杂的 JSON 文件格式?

卡塔林·卡利内斯库

我想解析以下文件:(完整的以下 json 文件的链接

[ {
  "team_id" : 776,
  "team_name" : "Denmark",
  "lineup" : [ {
    "player_id" : 3027,
    "player_name" : "Mathias Jattah-Njie Jørgensen",
    "player_nickname" : "Zanka",
    "jersey_number" : 13,
    "country" : {
      "id" : 61,
      "name" : "Denmark"
    }
  }, {
    "player_id" : 3043,
    "player_name" : "Christian Dannemann Eriksen",
    "player_nickname" : "Christian Eriksen",
    "jersey_number" : 10,
    "country" : {
      "id" : 61,
      "name" : "Denmark"
    }
  }, {
    "player_id" : 3815,
    "player_name" : "Kasper Schmeichel",
    "player_nickname" : null,
    "jersey_number" : 1,
    "country" : {
      "id" : 61,
      "name" : "Denmark"
    }
  },  {
    "player_id" : 6356,
    "player_name" : "Michael Krohn-Dehli",
    "player_nickname" : null,
    "jersey_number" : 2,
    "country" : {
      "id" : 61,
      "name" : "Denmark"
    }
  } ]
}, {
  "team_id" : 785,
  "team_name" : "Croatia",
  "lineup" : [ {
    "player_id" : 3444,
    "player_name" : "Danijel Subašić",
    "player_nickname" : null,
    "jersey_number" : 23,
    "country" : {
      "id" : 56,
      "name" : "Croatia"
    }
}, {
    "player_id" : 6308,
    "player_name" : "Josip Pivarić",
    "player_nickname" : null,
    "jersey_number" : 22,
    "country" : {
      "id" : 56,
      "name" : "Croatia"
    }
  } ]
} ]

基本上,我想要从这些 json 文件中解析每个国家/地区的阵容。我的代码:

with open(r'C:\Users\Catalin\Desktop\World Cup Data\data\lineups\7581.json', encoding='utf-8') as data_file:    # r inainte de string ca sa il ia ca raw data
    data = json.load(data_file)
df = pd.json_normalize(data, sep = "_")
export_csv = df.to_csv (r'C:\Users\Catalin\Desktop\TestLineup7581.csv', index = None, header=True)

我将数据帧导出为 csv 格式,因为我想看看 json 是如何解析的,它看起来像这样: 形象

所以,我的问题是,我可以使用其他什么函数,比如 json_normalize()?如果存在。

鲍比

pd.json_normalize(data, 'lineup')应该做你想做的。如果你想要team_idteam_name,把pd.json_normalize(data, 'lineup', ['team_id', 'team_name']).

查看json_normalize文档示例以获取更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章