0

名、姓、住所などの個人情報を含むutf-8でエンコードされたpostgresdwhにデータをロードしています。これらの値には、ドイツ語の文字やumlautsフランス語の文字などをé, â, à含めることができます。データは Excel ファイルからデータフレームに読み込まれ、postgresql データベースにプッシュされます。以前、エンコード エラーを回避するために次の行を使用しました。たとえば、名の値については次のようになります。

df = pd.read_excel(dir_path, encoding='utf-8-sig')

df['fname'] = df['fname'].apply(lambda x: x.encode('windows-1252'))

別のエラーが発生したフランス語の文字に遭遇しました。

DataError('(psycopg2.DataError) invalid byte sequence for encoding "UTF8": 0xe9 0x20 0x20

エンコーディングを次のように変更しました。

df['fname'] = df['fname'].apply(lambda x: x.encode('utf-8-sig'))

ただし、スクリプトをそのままにしておくと、ドイツ語の文字を含む値は読み込まれません。windows-1252は西ヨーロッパ言語に使用され、これらすべての特殊文字を処理できるはずだと思いました。これらすべての言語に適用される代替エンコーディングはありますか? または、処理された値に基づいてエンコーディングを変更する必要がありますか?

4

1 に答える 1