ฉันจะเขียนข้อมูลในรูปแบบ CSV เป็นสตริง (ไม่ใช่ไฟล์) ได้อย่างไร
ฉันต้องการแคสต์ข้อมูลเช่นเดียว[1,2,'a','He said "what do you mean?"']กับสตริงที่มีรูปแบบ CSV โดยปกติจะใช้csv.writer()สำหรับสิ่งนี้เพราะมันจัดการกับกรณี edge ที่บ้าคลั่งทั้งหมด (การหลบหนีด้วยลูกน้ำ, เครื่องหมายอัญประกาศ, ภาษาถิ่น 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) …