Bonjour
Je pense que c'est plus lié au passage de Python 2 à Python 3 non ?
Ça dépend du type d'objet de row et du type de ses attributs... Mais je
suppose que les attributs pe_titre, pe_nom et pe_prenom sont unicode en
python2. Le writer prend des str en paramètre ce qui explique le besoin
d'encoder quand on écrit la ligne.
En python 3, le writer prend des str et les attributs pe_titre, pe_nom
et pe_prenom sont probablement des str aussi.
J'ai fait quelques migrations Python 2 vers Python 3, mais c'était il y
a quelques temps déjà... La page
https://docs.djangoproject.com/fr/1.11/topics/python3/ est assez complète.
Je pense que tu as intérêt à commencer par migrer à Python 3, puis à
passer à Django 2.0. Ça ferait une étape intermédiaire...
++
Arthur
On 14/03/2018 14:16, Bourhis Yves wrote:
Bonjour,
j'effectue divers tests pour migrer mes application de Django 1.11
vers 2.0 et j'ai quelques interrogations concernant l'encodage.
Jusqu'à présent pour, par exemple, exporter une liste
d'enregistrements dans un fichier texte je devais systématiquement
préciser l'encodage ; par exemple (writer est un objet csv.writer) :
writer.writerow([row.pe_titre.encode(EXPORT_CODAGE),
row.pe_nom.encode(EXPORT_CODAGE), row.pe_prenom.encode(EXPORT_CODAGE)])
faute de quoi j'obtenais une erreur dès qu'il y avait un caractère
accentué ou "spécial" !
Maintenant il semble qu'au contraire il ne faille plus le préciser, ce
qui simplifie la ligne de code en :
writer.writerow([row.pe_titre, row.pe_nom, row.pe_prenom)
Est-ce que quelqu'un peut me confirmer que c'est bien la bonne méthode ?
Par ailleurs est-ce que vous auriez déjà mené cette migration auquel
cas pourriez-vous nous faire part de votre expérience ?
Merci d'avance,
cordialement.
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django