2017-06-02 15 views
1

我想從Django中的JSON對象實現POST方法,但我不知道如何應用此POST方法。我有以下代碼:從郵差如何在django中應用郵差過濾器?

{ 
    "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" 
    } 
} 

代碼段

POST方法來分析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", }] 
+0

更具體。 – Pythonista

+0

POST方法按日期範圍過濾JSON,當我在Postman中應用此方法時,我收到由這些日期過濾的JSON。我需要過濾這個JSON,所以我可以比完整的JSON更快地處理數據。 –

+0

'過濾這個JSON'我的意思是更具體的這個。你想過濾什麼?你想通過過濾等來達到什麼目的? – Pythonista

回答

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())) 
+1

雖然您沒有測試我實現此代碼段的代碼,但我能夠過濾數據而不會重複發送到請求庫,這是使用POST方法過濾數據的另一種方法。非常感謝! –