List_final 是我构建的全局变量,用于将数据推送为 csv 格式。
下面代码中的 key_values 返回双引号中的结果。所以我的最终列表有一个我试图删除的双引号。
for entry,value_all in csv_data.iteritems():
list_temp=[entry]
key_values = ','.join(value_all.itervalues())
str(key_values).replace('"', '')
list_temp.append(str(key_values))
list_final.append(list_temp)
with open('test.csv', 'w') as fp:
writer = csv.writer(fp,delimiter=',',quotechar='"')
writer.writerows(list_final)
输出:
2018-01-27T08:00:00.000Z,"11,14,16,65,234,7,7,574"
2018-01-28T08:00:00.000Z,"1095,141,1646,638,2360,6,6,576"
最佳答案
引号不是由 ','.join
本身引入。重点是 CSV 作者看到一个带逗号的字符串,因此决定转义该字符串并将其用引号引起来。
但是根据示例输出,我认为您希望数据显示为单独的列。使用 CSV 编写器的想法是您不必自己进行字符串构造。如果你想把它写成单独的值,你可以使用:
for entry,value_all in csv_data.iteritems():
list_temp=[entry]
list_temp += value_all.itervalues()
list_final.append(list_temp)
with open('test.csv', 'w') as fp:
writer = csv.writer(fp,delimiter=',',quotechar='"')
writer.writerows(list_final)
或者我们可以使用列表理解:
list_final = [[entry, *value_all.itervalues()]
for entry,value_all in csv_data.iteritems()]
with open('test.csv', 'w') as fp:
writer = csv.writer(fp,delimiter=',',quotechar='"')
writer.writerows(list_final)
关于python - 消除 ',' .join() 调用生成的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48560045/