Je travaille sur l'extraction de données à partir d'une base de données SQL Server avec un jeu de caractères latin_1 dans une base de données Greenplum/Postgres avec un jeu de caractères utf-8. J'essaie de convertir les valeurs de chaîne immédiatement avant l'insertion, mais lorsque je fais ceci :
row=[i.decode('latin_1') for i in row]
row=[i.encode('utf-8') for i in row]
Je reçois une erreur indiquant que décode n'est pas un membre du type int. Cela a du sens étant donné que des valeurs entières arrivent. Mais il y a aussi des chaînes de caractères. Dans d'autres publications de ce type que j'ai lues, la réponse a toujours été immédiatement et catégoriquement 'vous devriez toujours savoir quel type arrive'. À bien des égards, je le sais, puisque c'est une requête statique, mais il semble très maladroit, et honnêtement non maintenable, de définir un ensemble de valeurs pour i dans lequel je veux effectuer la conversion pour chaque requête que j'écris. Il semblerait que les tests de type seraient la réponse propre, encapsulable et réutilisable ici, non ?
Des suggestions ?