Dans un Python j'appelle une fonction de rpy2
, mais je reçois cette erreur:
#using an R module
res = DirichletReg.ddirichlet(np.asarray(my_values),alphas,
log=False, sum.up=False)
SyntaxError: keyword can't be an expression
Qu'est-ce qui s'est mal passé ici?
sum.up
n'est pas un nom d'argument de mot clé valide. Les arguments de mots clés doivent être des identificateurs valides. Vous devriez regarder dans la documentation de la bibliothèque que vous utilisez comment cet argument vraiment est appelé - peut-être sum_up
?
Je suppose que beaucoup d’entre nous qui sommes venus sur cette page ont un problème avec Scikit Learn, une façon de le résoudre est de créer un dictionnaire avec des paramètres et de le transmettre au modèle:
params = {'C': 1e9, 'gamma': 1e-07}
cls = SVC(**params)
C’est python sur sum.up=False
argument nommé en tant que sum.up n'est pas un nom d'argument valide (vous ne pouvez pas utiliser de points - uniquement des caractères alphanumériques et des traits de soulignement dans les noms d'argument).
En utilisant l’API Elastic search DSL, vous pouvez rencontrer la même erreur avec
s = Search(using=client, index="my-index") \
.query("match", category.keyword="Musician")
Vous pouvez le résoudre en faisant:
s = Search(using=client, index="my-index") \
.query({"match": {"category.keyword":"Musician/Band"}})
Je viens de recevoir ce problème lors de la conversion du formatage %
En .format()
.
Code précédent:
"SET !TIMEOUT_STEP %{USER_TIMEOUT_STEP}d" % {'USER_TIMEOUT_STEP' = 3}
Syntaxe problématique:
"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format('USER_TIMEOUT_STEP' = 3)
Le problème est que format
est une fonction qui a besoin de paramètres. Ils ne peuvent pas être des chaînes. C’est l’un des pires python que j’ai jamais vus.
Code corrigé:
"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format(USER_TIMEOUT_STEP = 3)