Python:SyntaxError:keyword不能是表达式

Ric*_*son 37 python syntax syntax-error keyword

在Python脚本中我调用了一个函数rpy2,但是我收到了这个错误:

#using an R module 
res = DirichletReg.ddirichlet(np.asarray(my_values),alphas,
                              log=False, sum.up=False) 
SyntaxError: keyword can't be an expression
Run Code Online (Sandbox Code Playgroud)

究竟出了什么问题?

Sve*_*ach 29

sum.up不是有效的关键字参数名称.关键字参数必须是有效的标识符.你应该看看该库的文档中使用的是如何这个说法真的叫-也许sum_up

  • 是的,就是这样。我忘了在处理R函数时,所有的点都需要转换成下划线。所以 `sum_up` 成功了。:) (3认同)

Pad*_*ddy 19

我想我们很多来到这个页面的人都有Scikit Learn的问题,解决它的一种方法是创建一个带参数的字典并将其传递给模型:

params = {'C': 1e9, 'gamma': 1e-07}
cls = SVC(**params)    
Run Code Online (Sandbox Code Playgroud)


Vla*_*mir 7

它是sum.up=False命名参数上的python源解析器失败,因为sum.up不是有效的参数名称(你不能使用点 - 只在参数名称中使用字母数字和下划线).


Bob*_*ait 5

使用 Elastic search DSL API,您可能会遇到相同的错误

s = Search(using=client, index="my-index") \
    .query("match", category.keyword="Musician")
Run Code Online (Sandbox Code Playgroud)

您可以通过执行以下操作来解决它:

s = Search(using=client, index="my-index") \
    .query({"match": {"category.keyword":"Musician/Band"}})
Run Code Online (Sandbox Code Playgroud)