Python: 使用 pandas 从 Influx 数据库中查询数据

Python: Querying data from Influx database using pandas

我正在尝试使用以下代码通过 pandas 从 Influx 数据库中查询数据:

from influxdb_client import InfluxDBClient
import pandas as pd

my_token = "my_token"
my_org = "my_org"
bucket = "bucket"

query= '''
from(bucket: "bucket")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "measurement")
  |> filter(fn: (r) => r["_field"] == "count")
  |> filter(fn: (r) => r["unit"] == "unit")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")'''

username = 'username'
password = 'password'

client = InfluxDBClient(url="https://us-west-2-1.aws.cloud2.influxdata.com/", token=f'{username}:{password}', org='my_org')

system_stats = client.query_api().query_data_frame(org=my_org, query=query)

执行完以上,报错:ApiException: (0) Reason: SSLError [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)

我不熟悉 Influx 数据库,但我需要查询一些数据并创建一个数据框。我使用的语法正确吗?我应该如何解决这个问题?谢谢!

试试 certifi:

import certifi

client = InfluxDBClient(
    url='https://us-west-2-1.aws.cloud2.influxdata.com',
    token=f'{username}:{password}', org=my_org,
    ssl_ca_cert=certifi.where()
)

灵感来自 this github issue

或使用 verify_ssl=False 作为 InfluxDBClient 的参数,但这不是一个好主意。