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"
答案 0 :(得分:4)
','.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)