다음과 같은 데이터를 캐스팅하고 싶습니다. [1,2,'a','He said "what do you mean?"']
CSV 형식의 문자열 .
일반적으로 하나는 csv.writer()
이를 위해 합니다. 왜냐하면 모든 미친 엣지 케이스 (쉼표 이스케이프, 따옴표 이스케이프, CSV 방언 등) csv.writer()
를 처리하기 때문입니다. 문제는 문자열이 아닌 파일 객체로 출력 될 것으로 예상하는 것입니다.
내 현재 솔루션은 다소 해키 기능입니다.
def CSV_String_Writeline(data):
class Dummy_Writer:
def write(self,instring):
self.outstring = instring.strip("\r\n")
dw = Dummy_Writer()
csv_w = csv.writer( dw )
csv_w.writerow(data)
return dw.outstring
누구든지 엣지 케이스를 잘 처리하는 더 우아한 솔루션을 제공 할 수 있습니까?
편집 : 다음은 내가 한 방법입니다.
def csv2string(data):
si = StringIO.StringIO()
cw = csv.writer(si)
cw.writerow(data)
return si.getvalue().strip('\r\n')
StringIO()
에있는io
라이브러리입니다.