logo
Loading...

requests.get param 傳遞的參數有什麼作用? - Cupoy

D4 sample 中的payload = {'key1': 'value1', 'key2': '...

pycrawler-d04

requests.get param 傳遞的參數有什麼作用?

2020/08/05 下午 08:07
HTTP Server-Client 架構說明與利用 Python 存取 API
賴姿妘
觀看數:507
回答數:2
收藏數:1
pycrawler-d04

D4 sample 中的


payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.get("http://odata.wra.gov.tw/v4/RealtimeWaterLevel", params=payload)


原理為何?key1 value1等所代表的意思

回答列表

  • 2020/08/05 下午 10:40
    楊人豪
    贊同數:2
    不贊同數:0
    留言數:0

    在網址上你經常可以看到原本的網址加上  "?" 例如: "https://httpbin.org/get?key1=value1&key2=value2&key2=value3" ?後面的文字在URL的叫做query string (中文:查詢) (參考資料:https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E5%AE%9A%E4%BD%8D%E7%AC%A6) 而payload做的就是幫忙我們產生query string https://requests.readthedocs.io/en/master/user/quickstart/#passing-parameters-in-urls 你可以試看看以下程式碼,他會告訴你他幫你產生的URL長什麼樣子 ```python payload = {'key1': 'value1', 'key2': ['value2', 'value3']} r = requests.get('https://httpbin.org/get', params=payload) print(r.url) ##印出結果 https://httpbin.org/get?key1=value1&key2=value2&key2=value3 ``` 完整的原理必須閱讀原始碼才會知道 建議你可以下載Pycharm並且設定中斷點,之後慢慢往裡面追才知道真正的運作原理

  • 2020/08/10 下午 06:47
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    嗨,在 GET 方法中的參數會利用 ? = & 的方式接在網址後面,利用 


    requests.get("http://odata.wra.gov.tw/v4/RealtimeWaterLevel", params=payload)


    會等於直接這樣寫:


    requests.get("http://odata.wra.gov.tw/v4/RealtimeWaterLevel?key1=value1&key2=value2")



    如果這個回答對你有幫助請主動點選「有幫助」或「最佳解答」的按鈕,也可以追蹤我的GITHUB 帳號。若還有問題的話,也歡迎再開一個新的問題繼續發問,或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃另外我目前有舉辦一個社群活動:學員限定!CUPOY 馬拉松線上小聚 👨🏻‍💻👨🏻‍💻,歡迎一起來玩玩!