recherche

Maison  >  Questions et réponses  >  le corps du texte

Impossible de gérer l'argument : str() il doit être de type liste, tuple ou dictionnaire

Cela ne fonctionne pas et affiche l'erreur "Impossible de gérer l'argument : str (Quality Tire Service à Ponteland), il doit être de type liste, tuple ou dictionnaire"

import mysql.connector
from sentence_splitter import SentenceSplitter, split_text_into_sentences

mydb = mysql.connector.connect(
  host="00.00.00.00",
  user="user",
  password="password",
  database="database"
)


mycursor = mydb.cursor()


sql = ("""SELECT blog_paragraph FROM blog_paragraph WHERE blog_topic like '%"%s"%'""")
val = ("Providing Quality Tyre Services in Ponteland")
mycursor.execute(sql,val)

myresult = mycursor.fetchall()

for x in myresult:
      print(x)

Cependant, lorsque vous transmettez la valeur directement dans la requête, celle-ci semble s'exécuter sans aucune erreur.

import mysql.connector
from sentence_splitter import SentenceSplitter, split_text_into_sentences

mydb = mysql.connector.connect(
  host="00.00.00.00",
  user="user",
  password="password",
  database="database"
)


mycursor = mydb.cursor()


sql = ("""SELECT blog_paragraph FROM blog_paragraph WHERE blog_topic like '%"Providing Quality Tyre Services in Ponteland"%'""")
mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
      print(x)

J'ai essayé de passer le paramètre de chaîne via une variable mais cela ne semble pas fonctionner.

Découvrez la réponse plus tard

mycursor = mydb.cursor()

val = "Providing Quality Tyre Services in Ponteland"
sql = ("SELECT blog_paragraph FROM blog_paragraph WHERE blog_topic like '%%%s%%'  " % val)

mycursor.execute(sql)

myresult = mycursor.fetchall()

P粉585541766P粉585541766388 Il y a quelques jours528

répondre à tous(1)je répondrai

  • P粉447495069

    P粉4474950692024-01-03 07:17:23

    Comme l'indique l'erreur : 

    Votre paramètre doit être d'un des types attendus, mais vous envoyez str

    Vous avez ajouté des parenthèses sur la variable val :

    val = ("Providing Quality Tyre Services in Ponteland")

    Mais défini avec 元组是由逗号, au lieu de parenthèses, cela devrait fonctionner :

    val = ("Providing Quality Tyre Services in Ponteland",)

    répondre
    0
  • Annulerrépondre