繁体   English   中英

如何在python中引用csv writer中的转义字符

[英]How can i quote escape characters in csv writer in python

我正在写这样的csv文件

for a in products:
    mylist =[]
    for h in headers['product']:
        mylist.append(a.get(h))
        writer.writerow(mylist)

我的我的几个字段是文本字段可以conatins像任何字符, " ' \\n或其他任何东西。什么是写在csv文件最安全的方式。同时文件也将有整数和浮点数

您应该使用QUOTE_ALL引用选项:

import StringIO
import csv

row = ["AAA \n BBB ,222 \n CCC;DDD \" EEE ' FFF 111"]

output = StringIO.StringIO()
wr = csv.writer(output, quoting=csv.QUOTE_ALL)
wr.writerow( row )

# Test:
contents = output.getvalue()
parsedRow = list(csv.reader([contents]))[0]

if parsedRow == row: print "BINGO!"

使用csv.QUOTE_ALL将确保所有条目的引用如下: "value1","value2","value3"而使用csv.QUOTE_NONE将为您提供: value1,value2,value3

此外,这会将条目中的所有引号更改为双引号,如下所示。 "somedata"user"somemoredata将成为"somedata""user""somemoredata in your written .csv

但是,如果将quotechar设置为反斜杠字符(例如),则对于所有引号,您的条目将返回为\\“。

  create=csv.writer(open("test.csv","wb"),quoting=csv.QUOTE_NONEescapechar='\\', quotechar='"')
for element in file:
    create.writerow(element)

而前面的例子将变成somedata\\"user\\"somemoredata ,这是干净的。 它也会以相同的方式逃避元素中的任何逗号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM