저는 csv.DictWriter를 사용하여 사전 집합에서 csv 파일을 출력하고 있습니다. 나는 다음과 같은 기능을 사용 dictrows는 사전의 목록입니다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()
을하고 fieldName에이 파일에 직렬화해야 헤더를 제공합니다.
내 사전 목록 (dictrows)의 값 중 일부는 숫자입니다. 떠돌아 다닙니다. 그리고 이것들의 서식을 지정하고 싶습니다. 예를 들어, float를 전체 정밀도가 아닌 "% .2f"로 serialize하는 것이 좋습니다. 이상적으로는 각 유형의 형식을 지정하는 방법을 지정하는 매핑을 지정하고 싶습니다.
{float: "%.2f"}
플로트가 있으면 % .2f로 포맷합니다. 이 작업을 수행하는 쉬운 방법이 있습니까? 나는 DictWriter 나 그와 같은 복잡한 것을 서브 클래스하고 싶지 않다 - 이것은 매우 일반적인 기능처럼 보인다.
어떻게이 작업을 수행 할 수 있습니까?
내가 생각할 수있는 유일한 해결책은 DictWriter의 포맷팅을 망쳐 놓는 대신 부동 소수점의 십진수 정밀도를 % .2로 지정하여 십진법 패키지를 직렬화하는 것입니다. 이것이 더 나은 해결책인지 모른다.
감사합니다.