斯潘8
斯潘4
嗨,大家好,
我有两个FME服务器环境:dev和prod。根据主机名,我想设置几个参数:
我使用非常简单的python脚本执行此操作,例如:
_ hostname=fme_macrovalues['fme_server_host']if _hostname='xxxxxxxx':fme_connection='fme server_prod'else:fme_connection='fme server_dev'返回fme_connection
这在FME服务器上工作得很好,但我不能再在桌面上运行这个工作区了。在桌面上填写FME服务器主机的值时,python似乎无法获得fme_宏值。有人对如何解决这个问题有什么建议吗?
您好!杰尔,当然,FME服务器参数不会在桌面环境中定义,因此,fme_macrovalues字典可能没有这些参数的键(参数名)和值对。我认为您遇到了来自Python解释器的keyError。
至少有两个解决方法。
1。使用“in”运算符确定字典是否包含键。如果钥匙不存在,做你需要的事。
或
2。使用dict类的“get”方法获取值。如果键不存在,该方法将返回默认值,因此,可以根据返回值确定键是否存在。
if fme_macrovalues.get('fme_server_host',无):打印'server'返回fme_macrovalues['fme_server_host']其他:打印'desktop'全局fme_macrovalues_desktop fme_macrovalues_desktop='fme_server_host':'yyyyyyy'返回fme_macrovalues_desktop['fme_server_host']然后,我还有一个参数叫fme_connection
if fme_macrovalues.get('fme_server_host',无):如果“主机名”='XXXXXXXXX':FME“连接”='FMEServer“产品”其他:FME“连接”='FMEServer“产品”返回FME“连接”根据FME_连接参数,我还设置了一些其他参数,比如要向其发送电子邮件的电子邮件地址,以及要在HTTP调用者中使用的WebService URL。
?2019安全亚搏在线软件公司|合法的