【问题标题】:How to apply postman filters in django?如何在 django 中应用邮递员过滤器?
【发布时间】:2017-11-03 08:28:18
【问题描述】:

我正在尝试从 Django 中的 JSON 对象实现 POST 方法,但我不知道如何应用此 POST 方法。我有以下代码:

来自 Postman 的方法 POST

{
  "filter": {
    "filters": [
      {
        "field": "CreatedOn",
        "operator": "gte",
        "value": "2017-02-12 00:00:00"
      },
      {
        "field": "CreatedOn",
        "operator": "lte",
        "value": "2017-03-12 00:00:00"
      },
      {
        "field": "VIP",
        "operator": "eq",
        "value": "YES"
      }
    ],
    "logic": "and"
  }
}

将 JSON 解析为 Python 的代码片段

def get_data(request, *args, **kwargs):
    with urllib.request.urlopen("http://10.61.202.98:8081/T/ansdb/api/rows/dev/ect/tickets",timeout=15) as url:
    response_data = json.loads(url.read().decode())
    user_id = [value['user_id'] for value in response_data]
    print(user_id)
    return JsonResponse(response_data, safe=False)

我要过滤的 JSON 对象

[{
id: 1003384,
user_id : 0001
CreatedOn: "2017-02-16 15:54:48",
Problem: "AVAILABILILTY",
VIP: "YES",
Vendor_CODE: "XYZ12345",
Week_id: "07",
},
{
id: 1003338,
user_id: 0002
CreatedOn: "2017-02-15 13:49:16",
Problem: "AVAILABILILTY",
VIP: "NO",
Vendor_CODE: "XYZ67890",
Week_id: "09",
}]

【问题讨论】:

  • 更具体。
  • POST 方法按日期范围过滤 JSON,当我在 Postman 中应用此方法时,我收到按这些日期过滤的 JSON。我需要过滤这个 JSON,这样我就可以比使用完整的 JSON 更快地处理数据。
  • filter this JSON 我的意思是说得更具体一些。你想过滤什么?你想通过过滤等来实现什么。
  • 我想过滤给定日期范围内包含的字典。如果运行代码 sn -p ,我将获得 2016 年 1 月到今年 6 月包含在 JSON 中的所有字典。我只想要 7 天的字典。

标签: python json django python-3.x postman


【解决方案1】:

没有经过测试,我想不到。替换您认为合适的日期范围以及包含或排除条件。

from datetime import datetime

START_DATE = datetime.strptime("06/01/2017", "%m/%d/%Y")
END_DATE = datetime.strptime("06/07/2017", "%m/%d/%Y")

response_data = filter(lambda x: START_DATE < datetime.strptime(x['CreatedOn'], "%Y-%m-%d %H:%M:%S") < END_DATE, json.loads(url.read().decode()))

【讨论】:

  • 虽然您没有测试代码,但我实现了这个 sn-p,并且我能够过滤数据而无需重复请求库,这是另一种使用 POST 方法过滤数据的方法。非常感谢!
猜你喜欢
  • 2018-10-14
  • 1970-01-01
  • 2020-10-17
  • 2020-09-14
  • 2019-07-23
  • 2010-10-26
  • 2022-08-10
  • 1970-01-01
  • 2014-05-23
相关资源
最近更新 更多