首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从python向node.js发送post请求以利用geckoboard?

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

Stack Overflow用户
提问于 2017-02-21 19:44:58
回答 1查看 791关注 0票数 1

Geckoboard提供这份文件来连接到他们的数据集API,您可以看到下面的实现。

代码语言:javascript
复制
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)发布这些额外的数据。是这样的事情是可能的还是我必须使用模式?

代码语言:javascript
复制
[
    { date: '2017-01-01', quantity: 1213, gross: 23423 },
    { date: '2017-01-02', quantity: 111, gross: 1313123 },
    { date: '2017-01-03', quantity: 333, gross: 21314 }
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 20:16:42

更新: Geckoboard现在为他们的数据集API https://github.com/geckoboard/geckoboard-python拥有自己的官方Python库

在Geckoboard的数据集API中使用Python是绝对可能的。您可以使用任何可以使用JSON执行HTTPS请求的语言或平台--尽管Geckoboard目前只发布了用于Ruby和Node的官方库。

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

简而言之,你只需要:

  • PUT使用schema对象到https://api.geckoboard.com/datasets来创建数据集
  • PUT使用data数组到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的,但是下面有一种方法,您可以使用下面的Geckoboard库为您创建一个Python库来完成这个任务:

代码语言:javascript
复制
import requests

  class Geckoboard(object):
          def __init__(self, api_key):
                  self.api_key = api_key

          def create(self, name, schema):
                  url = 'https://api.geckoboard.com/datasets/%s' % name
                  return requests.put(url, json=schema, auth=(self.api_key, ''))

          def delete(self, name):
                  url = 'https://api.geckoboard.com/datasets/%s' % name
                  return request.delete(url, auth=(self.api_key, ''))

          def replace(self, name, data):
                  url = 'https://api.geckoboard.com/datasets/%s/data' % name
                  return requests.put(url, json=data, auth=(self.api_key, ''))

          def append(self, name, data):
                  url = 'https://api.geckoboard.com/datasets/%s/data' % name
                  return requests.post(url, json=data, auth=(self.api_key, ''))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42376547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档