【问题标题】:How to format a CSV file in python如何在python中格式化CSV文件
【发布时间】:2017-08-24 08:55:13
【问题描述】:

我正在尝试在 python 中创建一个看起来像这样的 CSV 文件:

Person A    Class 1
            Class 2
            Class 3
Person B    Class 1
            Class 2
            Class 3
            Class 4
Person C    Class 1
Person D    Class 1
            Class 2

我有一个字典,其中 dict[person A] = [class 1, class 2, class 3],但是很容易弄乱数据结构。我该怎么做呢?

【问题讨论】:

  • 你累了什么?您的尝试有什么问题?
  • 你不想要那种格式,你想要可变长度记录"A,1,2,3\nB,1,2,3,4\nC,1\nD,1,2""\n"是换行符),
  • 看看Pandas模块

标签: python csv export-to-excel export-to-csv


【解决方案1】:

这不是您使用 CSV 文件的方式。构建数据的正确方法是有一个标题

Person,Class

在表格中的那一行下

A,1
A,2
A,3
B,1
B,2
B,3
B,4
C,1
D,1
D,2

您只需要遍历您的 dict 并在每个人的条目中,遍历他们的类并为每一对做一些 loke csvfile.writerow([person, class])

【讨论】:

  • 我宁愿建议一种可变长度记录格式 ("A,1,2,3"),但我感谢您努力推动 OP 进入更好的方式。
【解决方案2】:

准确获取您展示的格式,您可以通过以下方式:

data = dict()

data['Person A'] = ['Class 1', 'Class 2', 'Class 3']
data['Person B'] = ['Class 1', 'Class 2']

outstr = ''
for key, value in data.items():
    left = key
    for line in value:
        outstr += left + '\t' + line + '\n'
        left = ' '*len(key)

print(outstr)

但正如 gboffi 所评论的,如果 csv 格式不是一成不变的,那么使用可变长度记录格式可能会更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 2020-01-20
    • 2021-10-25
    • 2016-10-04
    • 1970-01-01
    • 2021-05-16
    • 2018-12-31
    相关资源
    最近更新 更多