J'ai fais pas mal d'application Python, et je t'apprends peut être rien, mais quand on lit une chaîne de caractère, il FAUT préciser l'encodage que tu lis.
Sur Python 2, toute chaîne de caractère donc l'encodage n'est pas défini est une "string".
Tu dois donc la décoder en la lisant pour le convertir en unicode.
Même chose pour écrire quelque chose dans la base, tu dois encoder l'information dans l'encodage de la base (en partant d'un unicode).
Explication :
Sous python 3, les string sont nativement en unicode (donc pas besoin de faire un u"chaine".
Bref, es tu sur du type d'encodage de ton fichier d'origine? Je sais que moi j'ai bloqué pas mal de temps jusqu'à m’apercevoir que sous Windows, l'encodage de la console était un truc genre cp85.