У меня есть список, состоящий из строк, целых чисел и плавающих элементов, а также вложенных списков строк, целых чисел и поплавков. Вот примерPython сохраняет произвольно вложенный список в CSV
data = [
1.0,
'One',
[1, 'Two'],
[1, 'Two', ['Three', 4.5]],
['One', 2, [3.4, ['Five', 6]]]
]
Я хочу, чтобы каждый элемент списка записывался в строку в файле CSV. Таким образом, учитывая приведенные выше данные, файл будет выглядеть следующим образом:
1.0
One
1,Two
1,Two,Three,4.5
One,2,3.4,Five,6
Есть много ресурсов о том, как составить список в файл, но я не видел ни что делать независимо из вложенность списка. Я уверен, что могу придумать что-то, что связано с множеством циклов и т. Д., Но есть ли у кого-нибудь более элегантное решение?
EDIT: Лучшая вещь, которую я придумал, состоит в том, чтобы преобразовать каждый элемент в список в строку, а затем удалить дополнительные символы ("[", "]" и т. Д.). Затем прикрепите ниточки запись и записать результат в файл:
string = ''
for i in data:
line = str(i).replace("[","")
line = line.replace("]","")
line = line.replace("'","")
line = line.replace(" ","")
string+=line + '\n'
# write string to file...
Это просто чувствует kludgey, и это потенциально вредно, поскольку это предполагает, что строки не содержат скобки, кавычки, или пробелы. Я ищу лучшее решение!
Пожалуйста, покажите нам, что вы пробовали. Если вы не знаете, как только вы начнете в направлении, кто-то может помочь вам придумать точное решение. Infact, это не должно быть так сложно. Откройте файл csv в режиме записи и в цикле начните запись в файл. – karthikr
Более элегантное решение * чем то, что *? Покажите, что вы пробовали ... –
Я думаю, что это проще всего сгладить каждый элемент первым (http://stackoverflow.com/questions/10823877/what-is-the-fastest-way-to-flatten-arbitrarily-nested -lists-in-python), а затем сохранить в csv. – zehnpaard