2016-10-12 2 views
1

Я захватывая данные из полей и сохранить его какэкспорт BeautifulSoup в CSV

data.append(newdata) 

Каждая полная запись затем сохраняется как:

list_of_rows.append(data) 

Я затем пытается сохранить в формате CSV

data_mod = [[item] for item in list_of_rows] 

with open("./hotels.csv", "wb") as outfile: 
    writer = csv.writer(outfile) 
    for row in data_mod: 
     writer.writerow(row) 
outfile.close() 

Но когда я загружаю его в csv, все сохраняется в первом поле. Как правильно его сломать?

EDIT

Каждая строка выглядит

[[u'Staybridge Suites London - Vauxhall', '\nTushar K\n', '\nIlford\n', 0, u'2 reviews', '5 of 5 stars', '29 September 2016', u'\nHome comes at staybridge........it nice with stay bridge.....awesome ambiance, kitchen, rooms, break fast area.............\nEverything is at place.....\nTalking about people of stay bridge... they all are very much cooperative, kind, best service people I have ever saw, meet...... its absolutely fantastic with stay bridge..........love u guysss.....\n']]

+0

Почему вы открываете файл в двоичном режиме? Не связанный, но вы можете просто использовать 'writer.writerows (data_mod)' –

+0

Я не знаю, что я открываю в двоичном формате - какова должна быть строка? 'writer.writerows (data_mod)' все еще не позволяет загружать в csv в отдельных полях; все входит в первый столбец – HenryM

+0

'' wb "' b-> двоичный режим, вам просто нужно 'w'. Как выглядит 'data_mod'? –

ответ

1

Не заворачивайте строки в списках, у вас уже есть список списков. Кроме того, необходимо лишить новой строки или каждая строка получит свою собственную линию, а не писать все в одной строке и закодировать в UTF-8:

with open("./hotels.csv", "w") as outfile: 
    writer = csv.writer(outfile) 
    writer.writerows([s.strip().encode("utf-8") if isinstance(s, unicode) else s 
        for s in row] for row in list_of_rows) 
+0

Я только что попробовал это, и я получаю 'UnicodeDecodeError: 'ascii' кодек не может декодировать байт 0xc3 в позиции 1: порядковый не в диапазоне (128)' при записи файла csv. – HenryM

+0

Редактирование должно работать, откуда вы получаете эти данные? У вас есть unicode, str и целые числа, смешанные вместе. –

+0

Я соскабливаю его с веб-страницы - tripadviser – HenryM