Постраничная запись(строк) в Excel или NotImplementedError - Python
Формулировка задачи:
И так есть парсер который ищёт информацию по артиклям , поскольку муторно писать проверку на валидность инфы , делаем это руцями. И вот что мы имеем парсер который по строке вписывает в файлик данные ,желательно Excel но не принципиально , подумываю о csv.
Вот код
Вот ошибка
Во первых я даже не понимаю из-за чего эта ошибка вылетает.
В интернете нашёл это
Код стал
Но вопрос
Листинг программы
- def get_page_data(html):
- fi = get_img(html)
- gi = fi[37:]
- tf = ''
- group = 'Люстри'
- country = 'Чехія'
- design = 'класичний'
- soup = BeautifulSoup(html.text)
- info = soup.find('div', class_='catalog_hr')#.find_all('b')[5].text
- tovname = soup.find('div', class_='catalog_tovname').find('a').text
- index = re.findall('(\d+)', tovname)[0]
- datas = []
- for ad in info:
- cols = info.find_all('b')
- datas.append({'index': index,
- 'name': tf,
- 'group': group,
- 'description': tf,
- 'maker': cols[12].text,
- 'country': country,
- 'design': design,
- 'lamp': cols[4].__str__().split('x')[0].split('<b>')[1],
- 'socle': cols[4].__str__().split('x')[1].split('</b>')[0],
- 'color_lamp': cols[9].text,
- 'type_lamp': cols[10].text,
- 'color_stl': cols[7].text,
- 'type_stl': cols[8].text,
- 'heightm': cols[2].text,
- 'width': cols[3].text,
- 'depth': cols[2].text,
- 'photo': gi})
- return datas
- def write_excel(datas):
- rb = open_workbook('./trybla.xls', formatting_info = True)
- r_sheet = rb.sheet_by_index(0)
- wb = copy(rb)
- w_sheet = wb.get_sheet(0)
- fields = ('index', 'name', 'group',
- 'description', 'maker','country',
- 'design', 'lamp', 'socle', 'color_lamp',
- 'type_lamp','color_stl','type_stl',
- 'heightm','width','depth', 'photo')
- for row, data in enumerate(datas, start=1):
- #print(row)
- #print(data)
- for col, field in enumerate(fields):
- #print(col)
- #print(field)
- w_sheet.write(r_sheet.nrows, col, data[field])
- wb.save('./trybla.xls' + '.out' + os.path.splitext('./trybla.xls')[-1])
Листинг программы
- Traceback (most recent call last):
- File "C:/Users/игор/Desktop/4Wscript/test.py", line 142, in <module>
- main()
- File "C:/Users/игор/Desktop/4Wscript/test.py", line 139, in main
- write_excel(datas)
- File "C:/Users/игор/Desktop/4Wscript/test.py", line 111, in write_excel
- rb = open_workbook('./trybla.xls', formatting_info = True)
- File "C:\Users\Anaconda\lib\site-packages\xlrd\__init__.py", line 143, in open_workbook
- ragged_rows=ragged_rows,
- File "C:\Users\Anaconda\lib\site-packages\xlrd\xlsx.py", line 794, in open_workbook_2007_xml
- raise NotImplementedError("formatting_info=True not yet implemented")
- NotImplementedError: formatting_info=True not yet implemented
is only working for xls-files, but not for xlsx yet (Version xlrd-0.8.0).
но смена расширения ничего не дала . Любые советы или наблюдения приветствуются
Всем снова привет, вообщем проблему записи я решил таким образом.
Код был
Листинг программы
- def write_excel(datas):
- rb = open_workbook('./trybla.xls', formatting_info = True)
- ....
- wb.save('./trybla.xls' + '.out' + os.path.splitext('./trybla.xls')[-1])
Листинг программы
- def write_excel(datas):
- rb = open_workbook('./trybla.xls')
- ....
- wb.save('./trybla.xls')
NotImplementedError
остаётся актуальным. Если у вас есть какие-то соображения на этот счёт , почему ошибка выскакивает или с чем может быть связана , буду рад любой информации.Решение задачи: «Постраничная запись(строк) в Excel или NotImplementedError»
textual
Листинг программы
- def export_excel(filename , datas):
- workbook = xlsxwriter.Workbook(filename)
- worksheet = workbook.add_worksheet()
- field_names =
- for i ,field in enumerate(field_names):
- worksheet.write(0, i, field)
- fields = ('index', 'name', 'group',
- 'description', 'maker','country',
- 'design', 'lamp', 'socle', 'color_lamp',
- 'type_lamp','color_stl','type_stl',
- 'heightm','width','depth','photo')
- for row, data in enumerate(datas, start=1):
- for col, field in enumerate(fields):
- worksheet.write(row, col, data[field])
- workbook.close()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д