gpt4 book ai didi

python - 如何在 Python 中使用 urllib 在 thingspeak.com 中发布 API

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:54 24 4
gpt4 key购买 nike

我正在做一个项目,我必须从一个网站获取数据,然后将其发布到另一个网站。目前我还是新手,所以我正在使用 thingspeak.com 帐户来试验发帖,我也在遵循 urllib 文档中使用的相同示例,https://docs.python.org/2/library/urllib.html .

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。有什么问题?! :\

非常感谢所有帮助。如果我弄错了也请指正。

最佳答案

您在 URL 中发送名为 field1 的查询参数,但它被设置为任何空字符串。因此 field1 被 thingspeak.com 设置为 ""。您在 params 中传递的那些值在 HTTP POST 请求的 body 中发送,它们不会以某种方式附加到 URL。

您可以通过以下两种方式之一设置字段:

  • GET 请求使用:

    f = urllib.urlopen("https://api.thingspeak.com/update?key=8TU6AC31T81MV52N&field1=my+value")

    其中包括 API key 和 field1 的值。

  • POST 请求:

    params = urllib.urlencode({'key': '8TU6AC31T81MV52N', 'field1': 'my value'})
    f = urllib.urlopen("https://api.thingspeak.com/update", data=params)

thinkspeak 将通过 POST 请求接受 URL 中的查询参数,例如您可以在 URL 中传递 field1 并在正文中传递 API key :

params = urllib.urlencode({'key': '8TU6AC31T81MV52N'})
f = urllib.urlopen("https://api.thingspeak.com/update?field1=hello", data=params)

但是,使用 API 看起来它只接受名为 field1 的查询参数。所有其他字段都将被忽略,即使是那些 documentedfield2field3

关于python - 如何在 Python 中使用 urllib 在 thingspeak.com 中发布 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30889872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com