首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果存在的话,PuppetDb脚本会得到事实吗?

如果存在的话,PuppetDb脚本会得到事实吗?
EN

Stack Overflow用户
提问于 2017-05-15 19:03:38
回答 1查看 318关注 0票数 0

我正在使用PuppetDb python库。如果一个事实存在,我想打印它的值。

代码语言:javascript
复制
for group in groups:
  node = puppetdb.node(group[0])
  if hasattr(node.facts, 'custom_fact'):
    print node.fact('custom_fact')

我对python比较陌生,但是我读了这里,上面的方法应该允许我检查对象是否有属性。

不确定我是否误解了指令,或者PuppetDb对象的行为是否不同。

只有当custom_fact存在时,我才能打印它?

编辑:当我使用print node.facts时,它说node.facts是一个绑定方法。因此,我也在尝试这样做(使用osfamily事实,因为它应该总是返回某些内容):

代码语言:javascript
复制
for group in groups:
  node = puppetdb.node(group[0])
  facts = node.facts()
  print facts
  if hasattr(facts, 'osfamily'):
    print facts('osfamily')

print facts返回<generator object facts at 0x7f906ffe35f0>

print node.facts('custom_fact')从不运行。

同时,尝试dir(facts)寻找不返回任何东西的属性,这使我相信这不是一个正常的对象。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-15 19:40:43

我发现使用try/except更好:

代码语言:javascript
复制
for group in groups:
  print group[0]
  node = puppetdb.node(group[0])
  try:
    print node.fact('custom_fact').value
  except:
    pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43986987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档