openpyxlを用いたプログラムを作っています。
多量のデータを読み込み、出力をする際エラーが検出されます。
エラー内容は以下の通りです。
python
1Traceback (most recent call last): 2 File "C:\Users\kkoya\OneDrive\Desktop\python 32bit\OCR_DATA.py", line 122, in <module> 3 ws['D'+str(i)].value = wakati_data 4 File "C:\Users\kkoya\AppData\Local\Programs\Python\Python36-32\lib\site-packages\openpyxl\cell\cell.py", line 299, in value 5 self._bind_value(value) 6 File "C:\Users\kkoya\AppData\Local\Programs\Python\Python36-32\lib\site-packages\openpyxl\cell\cell.py", line 196, in _bind_value 7 value = self.check_string(value) 8 File "C:\Users\kkoya\AppData\Local\Programs\Python\Python36-32\lib\site-packages\openpyxl\cell\cell.py", line 160, in check_string 9 raise IllegalCharacterError 10openpyxl.utils.exceptions.IllegalCharacterError 11>>>
さらに調べたところ pythonでデータ書き出しの際に「openpyxl.utils.exceptions.IllegalCharacterError」が出たときの対応が出てきたのですがこのサイトに乗っているコード
python
1import pandas as pd 2import openpyxl 3 4def illegal_char_remover(data): 5 ILLEGAL_CHARACTERS_RE = re.compile( 6 r'[\000-\010]|[\013-\014]|[\016-\037]|[\x00-\x1f\x7f-\x9f]|[\uffff]') 7 """Remove ILLEGAL CHARACTER.""" 8 if isinstance(data, str): 9 return ILLEGAL_CHARACTERS_RE.sub("", data) 10 else: 11 return data 12 13#サーバ情報 14conn = pyodbc.connect(サーバ情報) 15#クエリ実行 16df = pd.read_sql(クエリ情報, conn ) 17#IllegalCharacter除外(ここが追加分) 18df = df.applymap(illegal_char_remover)
このコードがどのような働きをするのかよろしければご教授お願いいたします。
エラー内容の追記をしました。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/12 06:20
2018/09/12 06:27