【发布时间】:2022-01-20 09:26:49
【问题描述】:
我有一个嵌套的 json 文件(10 万行),如下所示:
{"UniqueId":"4224f3c9-323c-e911-a820-a7f2c9e35195","TransactionDateUTC":"2019-03-01 15:00:52.627 UTC","Itinerary":"MUC-CPH-ARN-MUC","OriginAirportCode":"MUC","DestinationAirportCode":"CPH","OneWayOrReturn":"Return","Segment":[{"DepartureAirportCode":"MUC","ArrivalAirportCode":"CPH","SegmentNumber":"1","LegNumber":"1","NumberOfPassengers":"1"},{"DepartureAirportCode":"ARN","ArrivalAirportCode":"MUC","SegmentNumber":"2","LegNumber":"1","NumberOfPassengers":"1"}]}
我正在尝试创建一个 csv,以便可以轻松地将其加载到 rdbms 中。我正在尝试在 pandas 中使用 json_normalize() 但即使在我到达那里之前我也遇到了错误。
with open('transactions.json') as data_file:
data = json.load(data_file)
JSONDecodeError: Extra data: line 2 column 1 (char 466)
【问题讨论】:
-
问题:您的数据文件是否包含 100k 行,每行都有一个单独的有效 JSON 记录,还是里面都是一个很长的 JSON 结构?
-
每个都有单独的有效 json 记录。在 excel 中打开时,每行看起来像一行
-
所有记录是否都具有您的示例中显示的结构?将这种嵌套结构转换为平面 CSV 将是一项挑战,您必须决定要对
"Segment"列表做什么 - 它是否进入一个单元格?它的每个元素是否都进入自己的单元格?你想对每个元素中的键值对做什么? -
每个段应该转到自己的单元格。
-
我已编辑我的答案以提供更完整的解决方案。