Python中的Kairos数据库POST查询

2024-06-07 06:01:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python中发布查询以从Kairosdb获取数据: 计量读数是我已经创建的一个指标。在

import urllib
import urllib2

url = 'http://localhost:8080/api/v1/datapoints/query'
values = {
    "start_absolute": "1430454600",
        "end_relative": {
"value": "5",
    "unit": "days"
        },
            "metrics": [
                        {
                        "tags": {
                        "phase": [
                                  "769"
                                  ],
                        "uom": [
                                "72"
                                ]
                        },
                        "name": "materreadings",
                        "aggregators": [
                                        {
                                        "name": "sum",
                                        "sampling": {
                                        "value": "10",
                                        "unit": "minutes"
                                        }
                                        }
                                        ]
                        }
                        ]
}

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req) // this line is giving errors
the_page = response.read()
print(the_page)

我在执行此脚本时得到以下结果:

^{pr2}$

当我试图通过发送请求获得响应时,问题似乎出现在第37行。我可以用JAVA来执行这项工作,但是在python中我遇到了困难。我是不是错过了什么。在


Tags: thenameimporturldatavalueresponsepage
1条回答
网友
1楼 · 发布于 2024-06-07 06:01:52

我没有使用Python客户机的经验(顺便说一句,有一个pythonkairosdb库-我从未使用过它,但它存在于这里:https://github.com/pcn/pyKairosDB)。在

但我想我知道怎么了: 尝试url = 'http://localhost:8080/api/v1/datapoints/query/'(注意后面的斜杠) 您在查询JSON有效负载上使用urlencode,我不需要修改( urlencode用于对特殊字符进行编码,以便在使用GET方法的url中使用)。在

顺便说一句,您的查询有点奇怪,它的绝对起始点非常小—我想您输入的是Unix秒而不是毫秒—以及5天前的相对结束。。。这是你的意思吗?要求提供1970年1月17日至5天前的数据?在

我可以问一下你有什么数据吗?我看到你有带编号值的标签,KairosDB格式不能很好地处理可能有太多值的标记(也许这只是数据来源的一个ID,只要你没有几千或几百万个值,你就没事了)。在

我希望能帮上忙。在

相关问题 更多 >