2017-07-17 35 views
0

我需要幫助,瞭解如何使用python requests GET從具有多個頁面的api獲取數據。如何使用python請求處理分頁?

比方說下面響應API返回的current_key=223132

{ 
"result":[ 
    { 
    "aaa": 123, 
    "bbb": 456, 
    ..., 
    ... 
    } 
    ], 
    "next_key": 889182 
} 

下一頁爲current_key=889182

{ 
"result":[ 
    { 
    "aaa": 789, 
    "bbb": 0, 
    ..., 
    ... 
    } 
    ], 
    "next_key": 188192 
} 

正如你所看到的,next_key該值指示與最新的數據下頁/最新頁面。 current_key表示當前頁面。 我現在想要做的是每次運行requests.get它總是會檢索下一頁的數據。

我試着用下面的腳本,但它始終檢索數據爲current_key=223132

import requests 
import json 

data_set = [] 

url = "https://flespi.io/gw/channels/all/messages" 
headers = {"Authorization":"MyToken"} 
data = {"limit_count": 100, "limit_size": 1000} 

query = {'data': json.dumps(data, separators=(',', ':'))} 

r = requests.get(url, headers=headers, params=query) 

我想也許我可以把對頁面的參數在data這樣

data = {"limit_count": 100, "limit_size": 1000, "current_key": next_key} 

但我想我可能需要首先執行requests.get而不使用current_key參數,然後使用current_key參數重新編寫requests.get。換句話說,首先獲取next_key的值,然後將其插入到下一個requests.get。這似乎是一個不好的做法。

有沒有人有更好的主意?

謝謝你的幫助和建議。對此,我真的非常感激。

+0

你能列出服務API URI嗎? – hadi

+0

對不起。列舉服務API URI是什麼意思? – Fang

+0

分頁的常見解決方法是:'http:// server/your/uri /?pageSize = 10&pageNumber = 1' 你有類似的東西嗎? – hadi

回答

1

如果您的服務不會爲你提供頁面或計數

改變你的大腦,用另一種解決方案

使用此服務,可以實現尋呼機

prev next