最佳答案
我想将 [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')