查看: 1463|回复: 1

python3通过HTTP上传数据并显示

[复制链接]

3

主题

45

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2018-12-24 09:51:09 | 显示全部楼层 |阅读模式
本帖最后由 wangzhensuo 于 2018-8-25 08:52 编辑

记录一下自己的探索过程。
最开始是看下面这个帖子,但是是用python2实现的,我改成python3,替换自己的APIkey等等后发现返回值有
“invalid json”问题。没有找到原因。
https://open.iot.10086.cn/bbs/thread-2533-1-1.html

后来,搜索到下面这个帖子,看评论说可以调通,但我没有试,只是对照代码看看自己改写程序配置的项是否对。
结果还是没有通。
https://open.iot.10086.cn/bbs/fo ... 97&highlight=python

再后来在GitHub上找到个程序。
参照里面的post程序,结合第一个帖子代码,修改后,调通了。
GitHub参考代码地址:https://github.com/piaoxuebingfe ... python/test_lora.py

我修改后的代码:
这个程序是发送随机数到onenet,大家可以根据实际情况,改成发送自己的数据。
如果帖子中的代码空格格式有问题的话,可以从GitHub上复制。
https://github.com/wangzhensuo/SmartHome/blob/master/onenet.py
  1. import urllib.request
  2. import json
  3. import time
  4. import datetime
  5. import random
  6. import requests

  7. APIKEY = \'fz6gAAAAAAAAAAAAAAAAAAAAA=\'  # 改成你的APIKEY
  8. apiurl = \'http://api.heclouds.com/devices/1111111111/datapoints\'#改成你自己的
  9. apiheaders = {\'api-key\': APIKEY, \'Content-Length\': \'120\'}

  10. def http_put():
  11.     temperature = random.randint(60,100)
  12.     CurTime = datetime.datetime.now()
  13.     payload = {\'datastreams\': [{\"id\": \"girlA\", \"datapoints\": [{\"at\": CurTime.isoformat(), \"value\": temperature}]}]}
  14.     # payload = {\"datastreams\": [{\"id\": \"girlA\", \"datapoints\": [{\"value\": 11}]}]}
  15.     print(\"当前时间为: %s\" % CurTime.isoformat())
  16.     print(\"上传值为: %.3f\" % temperature)

  17.     jdata = json.dumps(payload)  # 对数据进行JSON格式化编码
  18.     # 打印json内容
  19.     print(jdata)
  20.     r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload))
  21.     return r

  22. while True:
  23.     time.sleep(2)
  24.     resp = http_put()
  25.     print(\"OneNET请求结果:\\n %s\" % resp)
复制代码

复制代码
创建应用后的效果图如下:





来源: python3通过HTTP上传数据并显示
回复

举报

1

主题

182

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2018-12-25 09:59:08 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表