Je charge des données dans un postgresdwh encodé à utf-8 qui inclut des informations personnelles - y compris le prénom, le nom et les adresses. Ces valeurs peuvent avoir des caractères allemands tels que umlauts
ainsi que des caractères français tels que é, â, à
etc. Les données sont lues à partir de fichiers Excel, dans une base de données, puis insérées dans la base de données postgresql. J'ai déjà utilisé la ligne suivante pour contourner une erreur d'encodage. Ainsi, par exemple sur les valeurs du premier nom:Python Codage des noms de personnes
df = pd.read_excel(dir_path, encoding='utf-8-sig')
df['fname'] = df['fname'].apply(lambda x: x.encode('windows-1252'))
J'ai maintenant rencontré des personnages français qui ont soulevé une autre erreur:
DataError('(psycopg2.DataError) invalid byte sequence for encoding "UTF8": 0xe9 0x20 0x20
J'ai changé l'encodage à:
df['fname'] = df['fname'].apply(lambda x: x.encode('utf-8-sig'))
Cependant, laisser le script tel quel ne chargera pas les valeurs avec des caractères allemands. Je pensais que windows-1252
est utilisé pour les langues Wester-European et devrait être capable de traiter tous ces caractères spéciaux. Existe-t-il un codage alternatif qui s'appliquera à toutes ces langues? Ou dois-je changer l'encodage en fonction de la valeur traitée?
Veuillez modifier votre question pour afficher la ligne de code ** correspondante ** à ** DataError ('**. Lire, [Comment créer un exemple minimal, complet et vérifiable] [1] et éditer votre question en conséquence. [1]: https://stackoverflow.com/help/mcve – stovfl