csv编写器在python中添加两次双引号

时间:2015-09-18 13:14:57

标签: python html csv

我编写了一个python脚本,用于将href属性和标记附加到包含csv文件中的url的字符串中。问题是结果不如预期。生成的html字符串有一个额外的双引号而不是单引号。有任何建议如何解决这个问题? 以下是摘录:

InputFile = open('data1.csv', 'rb')
OutputFile = open('data3.csv', 'a+b')

CsvReader_InputFile = csv.reader(InputFile, delimiter=',', quotechar='\"')
CsvWriter_OutputFile = csv.writer(OutputFile, delimiter=',', quotechar='\"')

Row_InputFile = CsvReader_InputFile.next()
Row_InputFile[2] = "<a href=\"" + Row_InputFile[2] + "\">Link</a>"
CsvWriter_OutputFile.writerow(Row_InputFile)

输出:

"<a href=""http://www.google.com"">Link</a>"

通缉输出:

"<a href="http://www.google.com">Link</a>"

2 个答案:

答案 0 :(得分:2)

这是正确的行为。双引号在csv值内转义。

如果您想在不转义的情况下输出,请尝试csv.QUOTE_NONE

csv.writer(OutputFile, delimiter=',', quotechar='\"', quoting=csv.QUOTE_NONE)

答案 1 :(得分:1)

在尝试将JSON对象作为字符串存储在csv的列中时遇到了这个问题。我在充满双引号的字符串周围有单引号。 我的数据行看起来像

['foo', 'bar', '{"foo":"bar". "bar":"foo"}']

这样做为我解决了

writer = csv.writer(csv_file, delimiter=',', quotechar="\'", quoting=csv.QUOTE_NONE)