Saya ingin mentransmisikan data seperti [1,2,'a','He said "what do you mean?"']
string berformat CSV.
Biasanya seseorang akan menggunakan csv.writer()
untuk ini, karena menangani semua kasus tepi gila (pelolosan koma, pelolosan tanda kutip, dialek CSV, dll.) Tangkapannya adalah yang csv.writer()
mengharapkan keluaran ke objek file, bukan ke string.
Solusi saya saat ini adalah fungsi yang agak hack ini:
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
Adakah yang bisa memberikan solusi yang lebih elegan yang masih menangani casing tepi dengan baik?
Sunting: Begini akhirnya saya melakukannya:
def csv2string(data):
si = StringIO.StringIO()
cw = csv.writer(si)
cw.writerow(data)
return si.getvalue().strip('\r\n')
StringIO()
ada diio
perpustakaan.