问题描述
我正在用 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,它显然在写入数据库的基础功能方面必须有所不同。我想我至少会跟进并分享信息,以便其他人在遇到此问题时知道。