我想将数据[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
库中。