繁体   English   中英

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

[英]How to parse complex JSON file format using pandas?

我想解析以下文件:( 完整的以下 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)

我将 dataframe 导出为 csv 格式,因为我想看看 json 是如何被解析的,它看起来像这样:图片

所以,我的问题是,我还能使用什么其他 function 像 json_normalize() ? 如果存在。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM