You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

InfluxDB脚本报错:'InfluxDBClient'无write_points属性,求正确脚本

修复InfluxDB写入Speedtest数据的AttributeError问题

错误原因

你遇到的AttributeError: 'InfluxDBClient' object has no attribute 'write_points',是因为当前使用的是InfluxDB v2.x客户端库,但调用了仅存在于v1.x客户端的write_points方法,二者API不兼容。

正确脚本

import re
import subprocess
from influxdb_client import InfluxDBClient
from influxdb_client.client.write_api import SYNCHRONOUS

# 执行Speedtest命令并获取输出
response = subprocess.Popen('/usr/bin/speedtest --accept-license --accept-gdpr', shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')

# 解析测速结果
ping = re.search('Latency:\s+(.*?)\s', response, re.MULTILINE)
download = re.search('Download:\s+(.*?)\s', response, re.MULTILINE)
upload = re.search('Upload:\s+(.*?)\s', response, re.MULTILINE)
jitter = re.search('Latency:.*?jitter:\s+(.*?)ms', response, re.MULTILINE)

# 校验解析结果,避免匹配失败导致崩溃
if not all([ping, download, upload, jitter]):
    raise ValueError("Speedtest结果解析失败,请检查命令是否正常执行")

ping_val = ping.group(1)
download_val = download.group(1)
upload_val = upload.group(1)
jitter_val = jitter.group(1)

# 构造InfluxDB数据格式
speed_data = [
    {
        "measurement": "internet_speed",
        "tags": {
            "host": "Speedlink"
        },
        "fields": {
            "download": float(download_val),
            "upload": float(upload_val),
            "ping": float(ping_val),
            "jitter": float(jitter_val)
        }
    }
]

# InfluxDB配置
bucket = "SpeedtestMonitor"
org = "Schmidt"
token = "oM8PyToLgv-404hbNvH6BEIldKbSHy6h8WGYQYwSwkz1qrPnJ7brf5aW5sdsdsWtQO7GVou4XQRt51N1p-ozMWw=="
url = "http://localhost:8086"

# 初始化客户端和写入API
client = InfluxDBClient(url=url, token=token, org=org)
write_api = client.write_api(write_options=SYNCHRONOUS)

# 写入数据到InfluxDB
write_api.write(bucket=bucket, org=org, record=speed_data)

# 关闭客户端连接
client.close()

关键修改点

  • 导入SYNCHRONOUS写入选项,确保数据同步写入InfluxDB
  • 用v2客户端的write_api.write方法替代v1的write_points,明确指定bucket、组织和数据记录
  • 增加解析结果的校验逻辑,避免因Speedtest输出格式变化或命令执行失败导致的崩溃
  • 增加客户端连接关闭操作,优化资源占用

内容的提问来源于stack exchange,提问作者Louis Overhoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:27:45