Influxdb-client Python自定义时间戳未能写入InfluxDBv2

0 投票
1 回答
22 浏览
提问于 2025-04-14 15:44

我在用 influxdb-client 的 Python 库往 InfluxDB2 发送时间戳时遇到了问题。

我的代码是:

(local_time_to_unix 是我自己定义的一个函数,用来把时间转换成 Epoch 时间,这个函数是正确的,我也测试过其他的 Epoch 值)


time = local_time_to_unix(2024,5,2,4,1,1)

current_time = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')

print(time)

p = Point("Solar_data").tag("Project", "777").tag("Installation", 1223).field("total_consumption", 0.5 ).time('1996-02-25T21:20:00.001001231Z')

每次我尝试用 .time() 函数发送数据点时,要么什么都没发生(在 InfluxDB 中没有记录被添加),要么时间戳不正确:在 InfluxDB 中的时间戳(_start, _stop, _time)是查询数据时的主机时间。所以它总是变成主机的当前时间,而不是我通过 Python 添加数据点时的时间...

我的 Python 代码执行得很顺利,没有任何错误。

我尝试了各种可能的时间格式,也查阅了 InfluxDB 和 influxdb-client 的文档,但都没有用。

.time('1996-02-25T21:20:00.001001231Z') 是从官方文档的“示例”部分提取的。为什么对我来说不管用?

为什么 .time() 函数在我的 Point 上不工作?

谢谢大家的帮助!

更新

我尝试在一个 Linux 主机上运行完全相同的代码,那个主机上也运行着 InfluxDBv2,结果一切都正常。所以我猜这可能是 Windows(11)主机特有的问题?有没有办法解决这个问题?我也需要在 Windows 11 主机上能用...

1 个回答

0

我用的是一台Windows 10的电脑,Python版本是3.10,然后我写了关于influxdb2(这是一个Linux系统)的内容,这个是可以用的。

撰写回答