私はutf-8でエンコードされたpostgresdwhにデータを読み込みます。これには、姓、名、住所などの個人情報が含まれています。これらの値は、umlauts
などのドイツ語の文字と、é, â, à
などのフランス語の文字を持つことができます。データはExcelファイルからデータフレームに読み込まれ、postgresqlデータベースにプッシュされます。 私はこれまで、次の行を使用してエンコードエラーを回避してきました。だから、最初の名前値のインスタンスのために:私は今、別のエラーを調達しているフランス語の文字遭遇したPythonエンコーディングの人物名
df = pd.read_excel(dir_path, encoding='utf-8-sig')
df['fname'] = df['fname'].apply(lambda x: x.encode('windows-1252'))
:
df['fname'] = df['fname'].apply(lambda x: x.encode('utf-8-sig'))
:
DataError('(psycopg2.DataError) invalid byte sequence for encoding "UTF8": 0xe9 0x20 0x20
を私がするエンコーディングを変更しましたただし、スクリプトをそのままにしておくと、ドイツ語の文字で値が読み込まれることはありません。 私はwindows-1252
がWester-European言語で使用されていると考えており、これらのすべての特殊文字を処理できるはずです。 これらの言語すべてに適用される代替エンコードはありますか?または、処理された値に基づいてエンコーディングを変更する必要がありますか? 「無効なバイトシーケンス」問題は間違いなくデータがががをエンコードされていない、を復号化された場所に接続されている:DataErrorはどこから来たあなたは一つのことが明確である、表示されませんが
質問を編集して、**対応する**コード行を** DataError(** ** Read、[最小、完全、および検証可能な例を作成する方法[1]]に応じて編集し、それに応じて質問を編集してください。 [1]:https://stackoverflow.com/help/mcve – stovfl