如何解决TypeError: write_points()缺少必填位置参数'measurement'错误
错误原因
该报错是调用InfluxDB Python库的write_points()方法时缺失必填参数measurement导致的。measurement是InfluxDB中存储时序数据的核心分类单元,作用和关系型数据库的表名一致,写入时必须指定。
你当前的代码还存在另一处语法错误:初始化DataFrameClient时port参数未赋值,InfluxDB默认HTTP端口为8086,需要补充完整。
修复方案
直接在write_points调用时传入measurement参数即可,参考代码如下:
from influxdb import DataFrameClient # 初始化客户端,按需替换数据库、用户名、密码配置,无权限验证可以省略username、password参数 client = DataFrameClient( host='localhost', port=8086, username='你的用户名', password='你的密码', database='目标数据库名' ) # 写入json格式数据,替换为你实际要使用的measurement名称 client.write_points(points=json_body, measurement='自定义的measurement名称')
如果是直接写入DataFrame,写法如下:
# 注意DataFrame的索引必须是时间类型 client.write_points(dataframe=你的DataFrame对象, measurement='自定义的measurement名称')
补充说明
如果你的json_body中已经包含measurement字段,也可以通过添加protocol='json'参数省略显式传measurement,但更推荐显式传入避免逻辑歧义。
内容的提问来源于stack exchange,提问作者waqar ali
相关产品推荐
相关产品推荐

