【发布时间】:2021-03-14 00:57:16
【问题描述】:
我正在 python 中进行基本设置,以将数据传递到我在 RaspberryPi 上运行的 InfluxDB 服务器。我的问题是 write_points() 函数不会将任何数据写入 InfluxDB,即使我使用最简单的测量和字段集条目作为测试:
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'))
我能够通过 Python 与服务器通信,如果我在服务器上手动创建值,则可以在同一个脚本中检索它们。下面是匹配上面代码sn-p中的一些请求的终端输出的sn-p。
'1.8.4'
[{'name': '_internal'}, {'name': 'jsonAAPLDataTest'}, {'name': 'example'}]
True
ResultSet({})
更新 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,它显然必须在写入数据库的基础功能方面有所不同。我想我至少会跟进并分享信息,以便其他人知道,以防万一他们发现这个问题。