0

我在获取此代码以将频道 ID 和值上传到 xively 时遇到问题,有人可以为我提供一些关于我哪里出错的指导吗?

 temp = read_temp()
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"SolarFlow","current_value":temp_0}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"SolarReturn","current_value":temp_1}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"BufferIn","current_value":temp_2}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"BufferOut","current_value":temp_3}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"UFH_Flow","current_value":temp_4}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"GSHP_Flow","current_value":temp_5}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"GSHP_WellReturn","current_value":temp_6}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"GSHP_LoopsReturn","current_value":temp_7}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"HotWaterTank","current_value":temp_8}]})
    data = json.dumps({"version":"1.0.0", "datastreams":[{"id":"HotWaterPreHeatTank","current_value":temp_9}]})

    with open("temp.tmp", "w") as f:
        f.write(data)

    subprocess.call(['curl --request PUT --data-binary @temp.tmp --header "X-ApiKey: AR4soQUW2uG3t2pTVl3FVPPKZPfH66tJ0Z8SjBlEzhvFXpIK" http://api.cosm.com/v2/feeds/2002766727'], shell=True)

    os.remove("temp.tmp")

干杯

史蒂夫

4

1 回答 1

0

实现这一点的最佳方法是使用Xively 提供的官方 Python 模块。

以下是不按照您刚才描述的方式进行操作的几个原因:

  1. 官方库提供了一个漂亮而简单的 API
  2. 你不需要关心数据格式实际上是什么
  3. 每次调用 curl 命令来发出 HTTP 请求
    绝对是低效的,因为操作系统需要时间
    来生成和新进程
于 2013-08-22T10:54:19.547 回答