JSON 到特定格式的 CSV

JSON to CSV in Specific Format

我正在尝试将 Json 文件转换为 Csv

我无法构建逻辑。 这是我试过的

代码

import json
import csv
import os

with open('truck_trips.json') as json_file:
    data = json.load(json_file)

file_path = 'json_data.csv'
    
if not os.path.exists(file_path):
    print("No File")
    header = ['Truck_Id', 'Trip_Id', 'Start', 'End']
    with open(file_path, 'w') as f:
        writer = csv.writer(f)
        writer.writerow(header)
    
    for item in data:
        print(item)
        for t in data[item]:
            print(t)
            print(data[item][t])
        print("\n")

这样就可以了,

# Getting the JSON content.
with open("/content/truck_trips.json", "r") as f:
  json_output = f.read()

output_dict = json.loads(json_output)

# Storing the relevant data from the JSON file into a list.
trucks_detail = []

for truck in output_dict:
  for trip in output_dict[truck]:
    trips = output_dict[truck][trip]

    for i in range(len(trips)):
      start, end = trips[i][0], trips[i][1]
      truck_detail = [truck, f"{trip}.{i + 1}", start, end]
      trucks_detail.append(truck_detail)

# Converting it into a dataframe.
df = pd.DataFrame(trucks_detail, columns = ["Truck_Id", "Trip_Id", "Start", "End"])
df.to_csv("Truck Details.csv", index = False)

数据框,

Truck_Id Trip_Id Start End
0 truck_1 trip_1.1 Toronto Kitchener
1 truck_1 trip_1.2 Kitchener Cobourg
2 truck_1 trip_1.3 Cobourg Aylmer
3 truck_1 trip_1.4 Aylmer Owen Sound
4 truck_1 trip_1.5 Owen Sound Orillia
5 truck_1 trip_1.6 Orillia Toronto
6 truck_1 trip_2.1 Toronto Ottawa - Gatineau
7 truck_1 trip_2.2 Ottawa - Gatineau Welland - Pelham
8 truck_1 trip_2.3 Welland - Pelham Toronto
9 truck_1 trip_3.1 Toronto Fort Frances