write_points() Python 不为 InfluxDB 写入数据

问题描述

我正在用 python 进行基本设置,以将数据传递到我在 RaspBerryPi 上运行的 InfluxDB 服务器。我的问题是 write_points() 函数不会将任何数据写入 InfluxDB,即使我使用最简单的测量和字段集条目作为测试:

print(train_fold_3,val_fold_3)
>>> 3 4

我能够通过 Python 与服务器通信,如果我在服务器上手动创建值,则在同一脚本中检索它们。下面是与上述代码片段中的一些请求匹配的终端输出片段。

from influxdb import InfluxDBClient
from influxdb_config import HOST,PORT,USERNAME,PASSWORD,DATABASE
from data_poll import quotes_response
import pprint

influxdbClient = InfluxDBClient(
    host = HOST,port = PORT,username = USERNAME,password = PASSWORD,database = 'example'
)

data = [
    {
        "measurement": "stock price","fields": {
            "price": 0.64,"volume": 120 
        }
    }
]

pprint.pprint(influxdbClient.ping())
pprint.pprint(influxdbClient.get_list_database())
influxdbClient.switch_database('example')

pprint.pprint(influxdbClient.write_points(data))

pprint.pprint(influxdbClient.query('SELECT * FROM example'))

更新 2021/03/14 - 我目前使用的是 Python 3.9.2,但在使用 3.7.3(由 API 开发人员测试)时遇到了完全相同的问题。我的下一个尝试是将我的 InfluxDB 实例从 v1.8.4 降级到 v1.7.4,看看这是否能解决问题。

解决方法

我现在能够使用正确的 API github.com/influxdata/influxdb-client-python 将数据正确地添加到我的 InfluxDB v1.8.4 数据库中。在此之前,我使用的是先前发布的 API,它显然在写入数据库的基础功能方面必须有所不同。我想我至少会跟进并分享信息,以便其他人在遇到此问题时知道。