python - 将 dict 写入 csv 文件,其中键不按字母顺序排列

标签 python csv dictionary

我知道当使用 python 将字典写入 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

最佳答案

仅用于一条记录。

import csv

output=open('temp.csv', 'w')
outputCSV = csv.DictWriter(output, delimiter = '\t', \
    fieldnames = [ 'name', 'city', 'state', 'stars', 'review_count', 'main_category' ] )

outputCSV.writerow( {
    'name': 'Southern Cal Med Group',
    'city': 'Los Angeles',
    'state': 'CA',
    'review_count': '2',
    'main_category': 'medical',
    'stars': '3.5',
    } )

output.close()

关于python - 将 dict 写入 csv 文件,其中键不按字母顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554081/

相关文章:

python - 如何在 python 中找到高于第二个标准差的值的百分比?

python - 我如何映射到字典而不是列表?

c++ - 将 map 与自定义对象一起使用时出错?可能是语法问题

Python脚本读取一个目录中的多个excel文件并将它们转换为另一个目录中的.csv文件

java - CSV 日期到 arraylist_Java

java - 无法读取 csv 文件

c# - 如何将数组转换为查找数据结构

python - python类中的声明等同于_init_?

python - 使用 ddof=1 为什么 Pandas groupby std 慢得多?

python - 如何使用 python opencv 裁剪图像中最大的对象?