首页 > 解决方案 > InfluxDB - 在 Grafana 上工作但不在 Python 中的查询

问题描述

我正在从 Grafana 尝试这个查询,它运行良好:SELECT * FROM "x" WHERE time > '2020-03-31' AND time < '2020-04-02'

问题是,在 python 中,我必须将查询格式化为字符串,并且遇到以下问题:

1)如果我在整行周围使用双引号,我会得到无效的语法,因为 FROM 字段已经需要双引号(如果我尝试在 FROM 字段周围使用单引号,我会得到 influxdb.exceptions.InfluxDBClientError: 400)

2)如果我在整行周围使用单引号,它将日期视为 int 并返回无效语法

3) 如果我在整行中都不使用引号,我会得到无效的语法

4)如果我在日期周围使用单双引号,它将返回 0 个元素

5) 如果我使用单引号并用 str() 换行日期,我会得到 0 个元素或语法错误,具体取决于是否仍在 str() 内使用引号

6) 如果我尝试将整行包装在 str() 中,我会收到语法错误

我尝试了所有这些: result = client.query(q, chunked=True).get_points() result = list(client.query(q, chunked=True).get_points())

如果可能的话,我更喜欢使用该列表。InfluxDB 1.7.9、Influx Python 客户端 5.2.3、Python 3.7、MacOs 10.12.6

标签: pythonpython-3.xdatabaseinfluxdbinfluxdb-python

解决方案


我不确定它是否可以工作,但您可以尝试使用三引号。这里提出了混合单引号和双引号的问题

例子:

print(""" I'm "Bob" """)

在三重空格周围使用空格,否则会出错。


推荐阅读