-5

我正在尝试使用请求将过滤器查询发送到 Flask-Restless。结果不被过滤。如何正确编写过滤器?

import requests
import json
q = {'filters': [{'task': 'build an API', 'task': 'profit'}]}
r = requests.get('http://127.0.0.1:5000/toworks', params={'q': json.dumps(q)})

我希望结果只包含第一项和第三项,但第二项也存在。

{
    "towork1": {
        "task": "build an API"
    }, 
    "towork2": {
        "task": "?????"
    }, 
    "towork3": {
        "task": "profit!"
    }
}
4

1 回答 1

1

您用于过滤器的语法完全错误。应该有一个过滤器列表,每个过滤器都是一个带有nameopvalue键的字典。由于您要在任务的值内进行搜索,请在您要过滤的值之前和之后使用like带有通配符 ( ) 的操作。%您还需要使用 an,or因为这两个过滤器是互斥的。

q = {'filters': [{'or': [
    {'name': 'task', 'op': 'like', 'val': '%build%'},
    {'name': 'task', 'op': 'like', 'val': '%profit%'}
]}]}
于 2015-07-24T15:13:21.243 回答