【发布时间】:2016-11-14 06:12:45
【问题描述】:
我知道当使用 python 将 dicts 写入 csv 文件时,标题将按字母顺序排列。那么有没有办法可以按照我想要的顺序编写标题?
tsv 文件的代码和输出如下。
我有一个字典:
my_data = {"name": name[:], "city": city[:], "state": state[:],
"stars": stars[:], "review_count": review_count[:],
"main_category": new_cat[:]}
我使用以下代码将它们写入 csv 文件:
with open('test.tsv','w') as file:
writer = csv.writer(file, delimiter='\t')
writer.writerow(my_data.keys())
for row in zip(*my_data.values()):
writer.writerow(list(row))
tsv文件输出的前几行如下:
city review_count name main_category state stars
Los Angeles 2 Southern California Medical Group Medical Centers CA 3.5
Cambridge 4 Harvard Square Shiatsu Massage MA 4.0
Kitchener 2 Faith & Glory Collective Tattoo ON 4.0
您可以看到它们是按字母顺序排列的,但我真正想要的是它们可以按 my_data 中的键顺序排列,如下所示:
name city state stars review_count main_category
【问题讨论】:
-
这个问题的一个或多个答案是否符合您的要求?:stackoverflow.com/questions/1885324/…
-
但是Dict没有'fieldnames'属性..还有别的办法吗?
-
my_data中的键没有定义顺序,因为它是字典,而不是序列。 -
@martineau 我意识到了这一点。所以如果我想按这个顺序输出文件,我应该怎么做?
-
@Parker 使用
csv.DictWriter并按照您想要的顺序指定fieldnames...
标签: python csv dictionary