4
我正在使用csv.DictWriter從一組字典中輸出csv文件。我用下面的功能:在Python中指定csv.writer的格式
def dictlist2file(dictrows, filename, fieldnames, delimiter='\t',
lineterminator='\n'):
out_f = open(filename, 'w')
# Write out header
header = delimiter.join(fieldnames) + lineterminator
out_f.write(header)
# Write out dictionary
data = csv.DictWriter(out_f, fieldnames,
delimiter=delimiter,
lineterminator=lineterminator)
data.writerows(dictrows)
out_f.close()
其中dictrows是字典列表,並提供字段名稱應被序列化到文件頭。
我的字典列表(dictrows)中的一些值是數字 - 例如,浮動,並且我想指定這些的格式。例如,我可能希望花車以「%.2f」而不是全部精度序列化。理想情況下,我想指定某種映射,說明如何格式化每種類型,例如
{float: "%.2f"}
說,如果你看到一個浮點數,用%.2f格式化它。是否有捷徑可尋?我不想將DictWriter或類似的任何複雜類型 - 這看起來像非常通用的功能。
這怎麼辦?
我能想到的唯一的另一個解決方案是:不要亂搞DictWriter的格式化,只需使用十進制包來指定浮點數的小數精度爲%.2,這將導致序列化。不知道這是否是更好的解決方案?
非常感謝您的幫助。