Python: ValueError: caractère de format non pris en charge '' '(0x27) à l'index 1
Je suis en train d'exécuter une requête de recherche 3 tables dans une base de données MySQL via Python. Chaque fois que j'essaie et exécutez la chaîne de requête, il me donne une erreur sur la concaténation de la chaîne.
"SELECT fileid FROM files WHERE description LIKE '%" + search + "%' OR filename LIKE '%" + search + "%' OR uploader LIKE '%" + search + "%' ORDER BY fileid DESC"
C'est l'erreur qu'il me donne:
ValueError: unsupported format character ''' (0x27) at index 1
Si je supprime le caractère, il le demande, alors je dois aussi supprimer l' %, qui s'arrête à la requête de réellement travailler correctement. Que puis-je faire pour résoudre ce problème, depuis que je suis plutôt nouvelle pour Python.
Grâce,
Kris
source d'informationauteur user1558746
Vous devez vous connecter pour publier un commentaire.
Il ressemble python est l'interprétation de l' % comme un printf format de caractère. Essayez d'utiliser %%?
vous pouvez essayer comme ceci:
Ma solution:
Je pense que c'est facile moyen de corriger ce problème!
Juste pour info: j'ai essayé la solution de @Pochi aujourd'hui, en Python 3.6, et pour quelque raison il a provoqué pas le comportement attendu. J'ai eu les deux, et trois arguments en faveur de chaîne de format, donc, à la fin de l'été:
Ma chaîne de caractères ("recherche") a commencé avec un dessus en "S". J'ai eu le message d'erreur:
J'ai changé de majuscules en minuscules, et l'erreur est:
Alors je viens de mettre mes arguments à l'intérieur de la double %% au début et à la fin, et cela a fonctionné. Donc mon code ressemblait:
Une autre solution serait celui fourni par @Alice Yuan. Elle a juste doublé le pourcentage chante, et ça fonctionne.