从 python 列表中创建一个 csv 文件

Create a csv file in from a python list

我有一个如下所示的列表,每个新行都用 \n 分隔

['Data,9,record,timestamp,"896018545",s,position_lat,"504719750",semicircles,position_long,"-998493490",semicircles,distance,"10.87",m,altitude,"285.79999999999995",m,speed,"1.773",m/s,unknown,"3929",,unknown,"1002",,enhanced_altitude,"285.79999999999995",m,enhanced_speed,"1.773",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n', 'Data,9,record,timestamp,"896018560",s,position_lat,"504717676",semicircles,position_long,"-998501870",semicircles,distance,"71.85",m,altitude,"285.0",m,speed,"5.533",m/s,unknown,"3924",,unknown,"1001",,enhanced_altitude,"285.0",m,enhanced_speed,"5.533",m/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]

这很难读,所以我需要从这个列表中将以下内容提取到 python 格式的 CSV 文件中,而不使用 pandas:

timestamp, position_lat,altitude
"896018545","504719750","285.79999999999995"
"896018560","504717676","285.0"

我有以下内容,但我对如何将数据添加到 CSV 文件感到困惑:

header = ['timestamp','latitude','altitude']
with open('target.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.writer(f)
    # write the header
    writer.writerow(header)
    # write the data

如果我对你的问题的理解正确,你所需要做的就是编写包含你的数据的额外行。

...
    ...
    writer.writerow(["896018545","504719750","285.79999999999995"])
    writer.writerow(["896018560","504717676","285.0"])

# alternatively,

data = [["896018545","504719750","285.79999999999995"], 
["896018560","504717676","285.0"]]
...
    ...
    for row in data:
        writer.writerow(row)