Где разместить код декодирования в скрипте python? - PullRequest
0 голосов
/ 03 марта 2020

Я новичок в python, и мой опыт минимален.

  • ОБНОВЛЕНИЕ: добавление полного сообщения об ошибке **

    "UnicodeDecodeErrorTraceback (most recent call last)
     in ()
         36         df1 = df1.drop('LOCATION_DESCR',axis=1)
         37         filename = i+'_'+j+'_'+TODAY+'.xlsx'
    ---> 38         df1.to_excel(new_dir+'\\'+filename,index = False)
         39         print filename +' is created'
         40         summary.append([i,j,str(len(df1.index))])
    
    c:\python\lib\site-packages\pandas\core\generic.pyc in to_excel(self, excel_writer, sheet_name, na_rep, float_format, columns, header, index, index_label, startrow, startcol, engine, merge_cells, encoding, inf_rep, verbose, freeze_panes)
       2125         formatter.write(excel_writer, sheet_name=sheet_name, startrow=startrow,
       2126                         startcol=startcol, freeze_panes=freeze_panes,
    -> 2127                         engine=engine)
       2128 
       2129     def to_json(self, path_or_buf=None, orient=None, date_format=None,
    
    c:\python\lib\site-packages\pandas\io\formats\excel.pyc in write(self, writer, sheet_name, startrow, startcol, freeze_panes, engine)
        660         writer.write_cells(formatted_cells, sheet_name,
        661                            startrow=startrow, startcol=startcol,
    --> 662                            freeze_panes=freeze_panes)
        663         if need_save:
        664             writer.save()
    
    c:\python\lib\site-packages\pandas\io\excel.pyc in write_cells(self, cells, sheet_name, startrow, startcol, freeze_panes)
       1603                 column=startcol + cell.col + 1
       1604             )
    -> 1605             xcell.value, fmt = self._value_with_fmt(cell.val)
       1606             if fmt:
       1607                 xcell.number_format = fmt
    
    c:\python\lib\site-packages\openpyxl\cell\cell.pyc in value(self, value)
        270     def value(self, value):
        271         """Set the value and infer type and display options."""
    --> 272         self._bind_value(value)
        273 
        274     @property
    
    c:\python\lib\site-packages\openpyxl\cell\cell.pyc in _bind_value(self, value)
        227 
        228         elif dt == "s":
    --> 229             value = self.check_string(value)
        230             if len(value) > 1 and value.startswith("="):
        231                 self.data_type = 'f'
    
    c:\python\lib\site-packages\openpyxl\cell\cell.pyc in check_string(self, value)
        178         # convert to unicode string
        179         if not isinstance(value, unicode):
    --> 180             value = unicode(value, self.encoding)
        181         value = unicode(value)
        182         # string must never be longer than 32,767 characters
    
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 14: invalid start byte" error message.
    

Я попытался добавить my_string.encode ('utf-8') где my_string на самом деле имя файла создается. Я знаю, что это, скорее всего, неверно, но я не знаю, к какой строке относится ошибка.

У меня есть несколько вопросов:

  1. Как мне сузить то, что ошибка указывает на?

  2. Где в коде разместить код декодирования, который мне нужно будет создать?

...