使用dictwriter,使用python将非结构化数据写入csv文件

2024-04-28 08:36:21 发布

您现在位置:Python中文网/ 问答频道 /正文

Output CSv file我正在尝试使用python将文件中的数据放入csv文件中。 我的数据如下:

data_list{} = [{'row': '0', 't0': '8.69E-005', 'elems': ' 4 96 187 ', 'Tspan': '5E-006', 'NP': '625','wave0': '123.65 333.56 3333.78 567.89 345678.77 34E-08'}]

我的输出应该如下所示:

^{pr2}$

首先是标题,然后是它们下面的值。除了elems和wave0之外,我成功地获得了头部分和行部分。在

python代码:

 with open('cc.csv','w', newline='') as out_file:
     writer = csv.DictWriter(out_file, fieldnames=data_list[0].keys())
     writer.writeheader()
     for data in data_list:
          writer.writerow(data)

Tags: 文件csv数据outputdataoutlistfile
1条回答
网友
1楼 · 发布于 2024-04-28 08:36:21

看起来您正在查找data_list变量中的字典。为了获得所需的输出,您需要做一些工作:

你的字典列表:

data_list = [{'row': '0', 't0': '8.69E-005', 'elems': ' 4 96 187 ', 'Tspan': '5E-006', 'NP': '625','wave0': '123.65 333.56 3333.78 567.89 345678.77 34E-08'}]

首先,需要定义输出列:

^{pr2}$

然后,您需要从字典的values创建列表,然后{}将所有这些列表一起创建:

# Python2
from itertools import izip_longest
import csv

data = [data_list[0].get(x).strip().split(" ") for x in output_cols]
data = izip_longest(*data)
with open('somefile.csv','w') as outfile:
    file_writer = csv.writer(outfile, delimiter="\t", lineterminator="\n")
    file_writer.writerow(output_cols)
    file_writer.writerows(data)

如果您使用的是python3,那么from itertools import izip_longest应该替换为from itertools import zip_longest。在

请注意,答案假设您的所有数据都是第一个字典(data_list[0])。如果你的实际名单比这个长,请分享更多的数据。在

somefile.csv的内容:

^{4}$

我希望这有帮助。在

相关问题 更多 >