XDB Python:无法按标记值查询

XDB Python:无法按标记值查询,python,influxdb,influxdb-python,Python,Influxdb,Influxdb Python,关于使用python的XDB中的查询,我有一个问题 我有以下简单的代码: from influxdb import InfluxDBClient client = InfluxDBClient(host='localhost', port=8086) client.create_database('pyexample') databases= client.get_list_database() client.switch_database('pyexample') json_b

关于使用python的XDB中的查询,我有一个问题

我有以下简单的代码:

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)
我试图只获取包含所有字段的用户Carol,但是对于上面的查询,我只收到一个空的ResultSet({})

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


提前感谢您的帮助

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

  • 您的json主体是错误的,您需要将每个度量值放在{}中,并用
  • 标记值必须用单引号括起来:
  • 另一种选择是使用参数绑定,这是首选方法:

    query = 'SELECT * FROM "brushEvents" WHERE user=$user'
    bind_params = {'user': 'Carol'}
    result = client.query(query, bind_params=bind_params)
    
    query = client.query('''SELECT * FROM "brushEvents" WHERE "user"='Carol' ''')
    
    query = 'SELECT * FROM "brushEvents" WHERE user=$user'
    bind_params = {'user': 'Carol'}
    result = client.query(query, bind_params=bind_params)