首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InfluxDB-Python:无法通过标记值进行查询

InfluxDB-Python:无法通过标记值进行查询
EN

Stack Overflow用户
提问于 2020-11-19 10:35:06
回答 1查看 727关注 0票数 0

对于使用python的InfluxDB中的查询,我有一个问题。

我有以下简单代码:

代码语言:javascript
复制
from influxdb import InfluxDBClient

client = InfluxDBClient(host='localhost', port=8086)



client.create_database('pyexample')

databases= client.get_list_database()

client.switch_database('pyexample')


json_body = [
    {
        "measurement": "brushEvents",
        "tags": {
            "user": "1",
            "brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2f"
        },
        "time": "2018-03-28T8:01:00Z",
        "fields": {
            "duration": 127
        },
        "measurement": "brushEvents",
        "tags": {
            "user": "Carol",
            "brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2r"
        },
        "time": "2018-03-28T8:01:00Z",
        "fields": {
            "duration": 129
        },
        "measurement": "brushEvents",
        "tags": {
            "user": "Evi",
            "brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2e"
        },
        "time": "2018-03-28T8:01:00Z",
        "fields": {
            "duration": 132
        }
    }
    
]
client.write_points(json_body)

query = client.query('SELECT * FROM "brushEvents" WHERE "user"="Carol" ')


print(query)

我试图只获取包含所有字段的用户ResultSet,但是使用上面的查询,我只接收到一个空的({})。

我做错什么了?我甚至用单引号试过。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-28 13:24:25

您在代码中犯了两个错误:

  1. --你的json身体是错的--你需要把每一个度量都放在{}中,并将它们与

分开

代码语言:javascript
复制
json_body = [
    {
        "measurement": "brushEvents",
        "tags": {
            "user": "1",
            "brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2f"
        },
        "time": "2018-03-28T8:01:00Z",
        "fields": {
            "duration": 127
        }
    },
    {
        "measurement": "brushEvents",
        "tags": {
            "user": "Carol",
            "brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2r"
        },
        "time": "2018-03-28T8:01:00Z",
        "fields": {
            "duration": 129
        }
    },
    {    
        "measurement": "brushEvents",
        "tags": {
            "user": "Evi",
            "brushId": "6c89f539-71c6-490d-a28d-6c5d84c0ee2e"
        },
        "time": "2018-03-28T8:01:00Z",
        "fields": {
            "duration": 132
        }
    }

]

  1. 您的标记值必须是单引号:

代码语言:javascript
复制
query = client.query('''SELECT * FROM "brushEvents" WHERE "user"='Carol' ''')

另一种选择是使用参数绑定,这是首选的方法:

代码语言:javascript
复制
query = 'SELECT * FROM "brushEvents" WHERE user=$user'
bind_params = {'user': 'Carol'}
result = client.query(query, bind_params=bind_params)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64909866

复制
相关文章

相似问题

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