【问题标题】:How do I make a REST query in python with a comparison statement? [closed]如何使用比较语句在 python 中进行 REST 查询? [关闭]
【发布时间】:2018-09-20 10:29:50
【问题描述】:

如何在 python 中使用比较语句进行 REST 查询?喜欢(准代码):

result = foo where bar > 10

我想使用请求从 python 2.7 进行休息 api 查询。我想要的是获取过去 24 小时内更新的所有文章。 在 javascript 中,它看起来像这样,而且效果很好:

http://myDatabase.domain.io/api/v1/article/q={"update_date":{"$gt":"2018-08-27 13:44"}}

我无法用 python 重新创建它。有人知道怎么做吗?

【问题讨论】:

  • 究竟是/q=还是/?q=
  • 请发布 MCVE
  • /q=,或者至少根据给我sn-p并告诉我它“效果很好”的那个人......

标签: python rest python-requests


【解决方案1】:

假设

  • 实际上是?q=,即查询字符串
  • 并且查询应该是 JSON(看起来很像)
  • 并且端点返回 JSON:

import requests, json

query = json.dumps(
    {"update_date": {"$gt": "2018-08-27 13:44"}}
)
resp = requests.get(
    url="http://myDatabase.domain.io/api/v1/article/",
    params={"q": query},
)
resp.raise_for_status()
data = resp.json()
print(data)

【讨论】:

  • 谢谢!我会对此进行测试并告诉你它是如何进行的
  • 最终这就是它的工作原理。正如您所指出的,这是原始查询字符串中的错误,a / 而不是 ? url = "http://myDatabase.domain.io/api/v1/article" querystring = json.dumps( {'q':{'update_date':{'gt':'2018-08-27 13:44'}}} ) headers = { 'Cache-Control': "no-cache" } response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
猜你喜欢
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
相关资源
最近更新 更多