Python:SyntaxError:keywordcan';这不是一种表达
在Python脚本中,我从Python:SyntaxError:keywordcan';这不是一种表达,python,syntax,syntax-error,keyword,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 这里到底出了什么问题?sum.up不是有效的关键字参数名称。关键字参数必须是
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
这里到底出了什么问题?
sum.up
不是有效的关键字参数名称。关键字参数必须是有效标识符。您应该查看正在使用的库的文档,了解此参数的真正调用方式–可能是sum\u up
?这是python源代码解析器在sum.up=False
命名参数时出现的故障,因为sum.up不是有效的参数名称(您不能在参数名称中使用点,只能使用字母数字和下划线).我刚从%
格式转换到.format()
时遇到了这个问题
以前的代码:
"SET !TIMEOUT_STEP %{USER_TIMEOUT_STEP}d" % {'USER_TIMEOUT_STEP' = 3}
有问题的语法:
"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format('USER_TIMEOUT_STEP' = 3)
问题在于格式
是一个需要参数的函数。它们不能是字符串。
这是我见过的最糟糕的python错误消息之一
更正代码:
"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format(USER_TIMEOUT_STEP = 3)
我想我们中的许多人来到这个页面时都会遇到Scikit学习的问题,解决这个问题的一个方法是创建一个带有参数的字典并将其传递给模型:
params = {'C': 1e9, 'gamma': 1e-07}
cls = SVC(**params)
使用弹性搜索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"}})
是的,就是这样。我忘了在处理R函数时,所有的点都需要转换成下划线。因此,
总结
成功了。:)只是有相同的语法错误,因为我使用了一个参数名“我的参数名”。您的回答帮助我发现将其重命名为“my_argument_name”可以解决此错误。关于您的更新:许多语法错误都带有一个插入符号^
,它指向导致解析错误的标记,而其他(包括此符号)则没有。在任何情况下,请注意错误消息,如有必要,请注意。在这种情况下,第一次点击应该已经解决了问题。@SvenMarnach:通过谷歌搜索错误消息,您现在可以进入此页面。不确定您是否回答了OP的问题,但您回答了我关于需要参数而不是字符串的格式化函数的问题。为什么不cls=SVC(C=1e9,gamma=1e-07)
?@MattS它可以工作,但有时您会将参数存储在字典中,因此,您需要“解包”它。使用kwargs进行解救!我喜欢动态参数名称的这种技术(: