我是Python的新手,並且爲一段代碼掙扎了一下。我正在使用rundeckrun,它是Rundeck API的開源Python客戶端。客戶端中有一段代碼似乎被鎖定到python 2.7+,我真的需要讓它在Python 2.6上工作。我嘗試過搜索,但甚至不知道這個構造是如何很難找到它的2.6等價物。Python 2.6與rundeckrun的兼容
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}
特定的錯誤是:
文件 「/usr/lib/python2.6/site-packages/rundeckrun-0.1.11-py2.6.egg/rundeck/client.py」第21行,在 from .api import RundeckApiTolerant,RundeckApi,RundeckNode 文件「/usr/lib/python2.6/site-packages/rundeckrun-0.1.11-py2.6.egg/rundeck/api.py」,行135 對於k在node_attr_keys如果GETATTR(個體,K,無)不是無} ^ 語法錯誤:無效的語法
[Python 2.7之前的替代dict理解]可能的重複(http://stackoverflow.com/questions/21069668/alternative-to-dict-comprehension-prior-to-python-2-7) – 2014-11-06 19:39:42
^它是稱爲「詞典理解」。希望這個其他問題有幫助。 – 2014-11-06 19:40:08
感謝大家的快速回復! – moshjeier 2014-11-06 20:00:50