如何从python向node.js发送post请求以利用geckoboard?

时间:2017-02-21 19:44:58

标签: python geckoboard

Geckoboard提供this documentation连接到他们的数据集API,您可以在下面看到它的实现。

var API_KEY = 'API_KEY';

var gb = require('geckoboard')(
  API_KEY
);


gb.datasets.findOrCreate(
  {
    id: 'sales.by_day',
    fields: {
      quantity: {
        type: 'number',
        name: 'Number of sales'
      },
      gross: {
        type: 'money',
        name: 'Gross value of sales',
        currency_code: "USD"
      },
      date: {
        type: 'date',
        name: 'Date'
      }
    }
  },
  function (err, dataset) {
    if (err) {
      console.error(err);
      return;
    }
    dataset.put(
      [
        { date: '2016-01-01', quantity: 819, gross: 2457000 },
        { date: '2016-01-02', quantity: 409, gross: 1227000 },
        { date: '2016-01-03', quantity: 164, gross: 492000 }
      ],
      function (err) {
        if (err) {
          console.error(err);
          return;
        }

        console.log('Dataset created and data added');
      }
    );
  }
);

我想看看是否有办法通过python发布这些额外的数据(不使用node.js)。这样的事情是可能的,还是我必须使用模式?

[
    { date: '2017-01-01', quantity: 1213, gross: 23423 },
    { date: '2017-01-02', quantity: 111, gross: 1313123 },
    { date: '2017-01-03', quantity: 333, gross: 21314 }
]

1 个答案:

答案 0 :(得分:2)

更新:Geckoboard现在拥有自己的官方Python客户端库,用于数据集API https://github.com/geckoboard/geckoboard-python

使用Geckoboard的数据集API完全可以使用Python。您可以使用任何可以使用JSON执行HTTPS请求的语言或平台 - 尽管到目前为止Geckoboard仅为Ruby和Node发布了官方库。

编辑:我在下面做了一个简单的例子,但后来发现了这个:https://github.com/helium/geckoboard-python/

简而言之,您只需要:

  • PUT使用schema对象https://api.geckoboard.com/datasets来创建数据集
  • PUTdata数组添加到https://api.geckoboard.com/datasets/:id以替换数据集中的所有数据
  • POSTdata数组添加到https://api.geckoboard.com/datasets/:id以附加到数据集中的数据
  • DELETEhttps://api.geckoboard.com/datasets/:id删除数据集

这些请求概述于 - https://developer.geckoboard.com/api-reference/curl/

我还没有编写很多Python,所以这可能不是Pythonic,但是你可以用Python创建一个Geckoboard库来为你做这个,使用{{ 1}}下面的库:

requests