在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
这到底出了什么问题?
答案 0 :(得分:22)
sum.up
不是有效的关键字参数名称。关键字参数必须是有效的标识符。您应该查看您正在使用的库真正的文档 - 也许sum_up
?
答案 1 :(得分:16)
我想我们很多来到这个页面的人都有 Scikit Learn的问题,解决问题的一种方法是创建一个带参数的字典并将其传递给模型:
params = {'C': 1e9, 'gamma': 1e-07}
cls = SVC(**params)
答案 2 :(得分:7)
这是sum.up=False
命名参数上的python源解析器失败,因为sum.up不是有效的参数名称(你不能使用点 - 只能在参数名中使用字母数字和下划线)。
答案 3 :(得分:2)
使用Elastic search DSL API,您可能会遇到与
相同的错误s = Search(using=client, index="my-index") \
.query("match", category.keyword="Musician")
您可以通过以下方式解决问题:
s = Search(using=client, index="my-index") \
.query({"match": {"category.keyword":"Musician/Band"}})
答案 4 :(得分:1)
从%
格式转换为.format()
时,我遇到了这个问题。
上一个代码:
"SET !TIMEOUT_STEP %{USER_TIMEOUT_STEP}d" % {'USER_TIMEOUT_STEP' = 3}
有问题的语法:
"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format('USER_TIMEOUT_STEP' = 3)
问题是format
是一个需要参数的函数。它们不能是字符串。
这是我见过的最糟糕的python错误消息之一。
更正后的代码:
"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format(USER_TIMEOUT_STEP = 3)