我是Python新手,在编写一段代码时有点吃力。我正在使用rundeckrun,这是一个用于rundeckapi的开源python客户端。客户机中有一段代码似乎被锁定在Python2.7+上,我真的需要让它在Python2.6上运行。我试过搜索,但都不知道这个结构叫什么,所以很难找到2.6的等价物。在
node_attr_keys = (
'name',
'hostname',
'username',
'description',
'osArch',
'osFamily',
'osName',
'editUrl',
'remoteUrl',
)
data = {k: getattr(self, k)
for k in node_attr_keys if getattr(self, k, None) is not None}
具体错误是:
runpydeck2.0/run-pythor/11/run-pydeck文件包/客户端.py“,第21行,英寸 从.api导入RundeckApi Tolerative,RundeckApi,RundeckNode 文件“/usr/lib/python2.6/site-packages/rundeckrun-0.1.11-py2.6.egg/rundeck/api.py文件“,第135行 如果getattr(self,k,None)不是None} ^ 语法错误:语法无效
那是对字典的理解。Python2.6不支持它们。您提供的代码大致相当于以下代码:
除了这个错误,人们可能会因为同样的原因得到以下错误。在
语法错误:语法无效
^{pr2}$语法错误:语法无效
语法错误:语法无效
你可能得用金德尔给你的一样的方法。只需分别修改以下文件。在
功劳归于金德。在
正如凯文指出的,这是对字典的理解。在
在Python2.6中,可以将其编写为生成元组(键/值对)列表的生成器表达式,并将其传递给
dict
构造函数:相关问题 更多 >
编程相关推荐