【发布时间】:2021-01-24 13:20:19
【问题描述】:
我有许多 JSON 文件,每个文件都包含许多飞行数据记录。记录类似于以下 JSON 结构。
[
{
"flight": {
"operatingAirline": {
"iataCode": "NH",
"icaoCode": "ANA",
"airlineDisplayCode": "NH",
"name": "ANA All Nippon Airways"
},
"serviceTypeCode":"PP",
"aircraftType": {
"icaoCode": "B77W",
"modelName": "B77W",
"registration": "JA792A"
},
"flightNumber": {
"airlineCode": "NH",
"trackNumber": "00203",
"suffix": ""
},
"codeShares": [
{
"codeShare": {
"airlineCode": "LH",
"trackNumber": "04921",
"suffix": ""
}
}
],
"departureAirport": "HND",
"arrivalAirport": "FRA",
"originDate": "2016-02-23",
"arrival": {
"scheduled": "2016-02-23T04:20:00Z",
"estimated": "2016-02-23T04:16:00Z",
"actual": "2016-02-23T04:16:16Z",
"terminal": "1",
"gates": {
"gate": "B48A"
},
"baggageClaim": {
"carousel": "19"
}
},
"flightStatus": ""
}
}
]
但执行以下操作会给我一个不完全平坦的数据框。
library(jsonlite)
df <- fromJSON(paste(getwd(), "test-data/arrival-2020-01-28-00-36.json", sep='/'), flatten=TRUE)
例如,flight.codeShares 和 flight.arrival.gates 列包含列表,这会阻止数据帧存储在 sqlite 文件中。我正在寻找一种解决方案来一次处理包含多条记录的 JSON 文件。
在 pyton 生态系统中,有一个 json_normalize 函数可以完成这项工作。我如何在 R 中做到这一点?
【问题讨论】:
-
只是为了确保:您想要的是一个完全平坦的数据框,即不包含任何嵌套在单元格中的数据,而是将嵌套的数据结构分成几列?。
-
是的,这正是我想要的。