我正在開發一個項目,我必須從網站獲取數據,然後將其發佈到其他網站。目前我還是新手,所以我使用的是thingspeak.com帳戶來測試發佈內容,我也遵循urllib文檔中使用的相同示例https://docs.python.org/2/library/urllib.html。如何POST-API在thingspeak.com中使用Python中的urllib
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
# I am using this to check => eggs=2&bacon=0&spam=1
print params
f = urllib.urlopen("https://api.thingspeak.com/update?key=8TU6AC31T81MV52N&field1=",params)
print f.read()
然而,當我檢查我的thingspeak網站http://api.thingspeak.com/channels/42628/feed.json?key=8TU6AC31T81MV52N,我會得到這個針對特定條目
{"created_at":"2015-06-17T10:05:12Z","entry_id":19,"field1":""}
據稱,或者至少我瞭解它的方式,則params應發佈到網站,但我不明白爲什麼我會得到空字符串。此外,如果我循環它不工作,它只適用於發佈空字符串的第一次迭代,其餘的是我會從f.read()讀取0。有什麼問題?! :\
所有幫助非常感謝。如果我錯了,也請糾正。
艾哈邁德,你可能也想看看http://httpbin.org它允許你用HTTP POST請求進行實驗,並簡單地用一個響應JSON編碼的POST請求版本。 – mhawke
非常感謝您的幫助先生。 Atm我想嘗試httpbin.org的時候,但我仍然不確定如何使用curl,但無論如何,我只是試過,它與這個代碼一起工作:'params = urllib.urlencode({'key':'8TU6AC31T81MV52N', 'field1':{'spam':1,'eggs':2,'bacon':0}}) \t \t f = urllib.urlopen(「https://api.thingspeak.com/update」,data = params)'它工作:D!但我仍然面臨循環問題。例如,如果我嘗試每隔幾秒發佈一次,它只會讀取第一次閱讀,其餘的將會被忽略!這是來自事情還是我需要解決的問題? –
每個頻道的更新速率限制爲每15秒1次 - 請參閱https:// thingspeak。COM /文檔/信道#rate_limits – mhawke