如何在 python 中使用多个对象过滤器

How to use multiple objectfilters in python

我正在使用以下对象过滤器来获取虚拟服务器列表

object_filter1 = {
    'virtualGuests': {
    'dedicatedAccountHostOnlyFlag': {'operation': 1},
    'powerState': {'name': {'operation': 'Running'}}
    }

virtualServers = client['Account'].getVirtualGuests(mask=object_mask,filter=object_filter)

如何定义另一个具有条件 powerState.name == 运行 and primaryIpAddress 属性值的过滤器? (!=null) 或设置?我想将这两个过滤器应用于我的结果,即 object_filter1 条件 第二个条件必须为真

请尝试以下示例:

import SoftLayer
# For nice debug output:
from pprint import pprint as pp

API_USERNAME = 'set me'
API_KEY = 'set me'


filterInstance = {
  'virtualGuests': {
    'powerState': {
      'name': {
        'operation': 'Running'
      }
    },
    'primaryIpAddress': {
      'operation': 'not null'
    }
  }
}

# Creates a new connection to the API service.
client = SoftLayer.Client(
    username=API_USERNAME,
    api_key=API_KEY
)

try:
    result = client['SoftLayer_Account'].getVirtualGuests( filter = filterInstance)
    pp(result)

except SoftLayer.SoftLayerAPIError as e:
    pp('Failed ...  faultCode=%s, faultString=%s'
        % (e.faultCode, e.faultString))

参考文献:

object-filters

python::ticket_filter