データ[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
ライブラリにあります。