Как удалить кавычки при экспорте csv из python
При экспорте таблицы в нормальном виде
['VD3', 'LED_3030', '28.7550', '64.1000', '', '', '', '', 'T', '180', 'LED_SMD']
['VD2', 'LED_3030', '47.3050', '64.0400', '', '', '', '', 'T', '180', 'LED_SMD']
['VD1', 'LED_3030', '28.7550', '64.1000', '', '', '', '', 'T', '270', 'LED_SMD']
В конечном файле вещественные числа берутся в кавычки и получается
VD3,LED_3030,"28.7550","64.1000",,,,,T,180,LED_SMD
VD2,LED_3030,"47.3050","64.0400",,,,,T,180,LED_SMD
VD1,LED_3030,"13.5000","52.7150",,,,,T,270,LED_SMD
Эти кавычки нужно убрать. Вот код экспорта
with open('{}'.format(filename)+'.csv', "w", newline='') as file:
writer = csv.writer(file)
writer.writerows(lest)
Забыл уточнить что код экспорта получает таблицу уже в правильном виде, тоесть он сам добавляет эти кавычки
Ответы (2 шт):
Автор решения: Іван Шнір
→ Ссылка
Перед тем как всё записать, надо убрать эти кавычки с помощью команды float()
В результате у вас должен поменяться код примерно вот так:
with open('{}'.format(filename)+'.csv', "w", newline='') as file:
writer = csv.writer(file)
for x in range(0,len(lest)):
try:
lest[x] = float(lest[x])
except:
print(lest[x],'не получаеться преобразовать в число')
writer.writerow(lest[x])
Автор решения: Ежи Сармат
→ Ссылка
Я для себя нашел решение, но не уверен что оно самое подходящее, можно ли сократить количество действий?
lest = ['VD3', 'LED_3030', '28,7550', '64,1000', '', '', '', '', 'T', '180', 'LED_SMD']
for value in lest: #Element iteration
for sim in value: #Symbol iteration
if sim == ',':
index = lest.index(value)
value = list(value)
value.insert(value.index(sim), '.')
value.remove(',')
value = ''.join(value)
lest.pop(index)
lest.append(value)
lest.insert(index, value)
lest.pop()
print(lest)
Результат
['VD3', 'LED_3030', '28.7550', '64.1000', '', '', '', '', 'T', '180', 'LED_SMD']