我的需求
我想用 Python 將資料寫入 InfluxDB,請包裝成 def,Point 及 field 以參數傳入,請參考:
(我的資料)
temp = 0
humidity = 0
voltage = 0
battery = 0
(官網文件)
https://docs.influxdata.com/influxdb/v2/write-data/developer-tools/api/
ChatGPT 回應
程式碼如下:
import requests
def write_to_influxdb(line_protocol):
# InfluxDB 參數
org = "YOUR_ORG" # 替換為你的組織名稱
bucket = "YOUR_BUCKET" # 替換為你的 bucket 名稱
precision = "ns"
api_token = "YOUR_API_TOKEN" # 替換為你的 API token
url = f"http://localhost:8086/api/v2/write?org={org}&bucket={bucket}&precision={precision}"
headers = {
"Authorization": f"Token {api_token}",
"Content-Type": "text/plain; charset=utf-8",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, data=line_protocol)
if response.status_code == 204:
print("成功將資料寫入 InfluxDB。")
else:
print(f"寫入資料失敗。狀態碼: {response.status_code}, 響應: {response.text}")
# 你的資料
temp = 0
humidity = 0
voltage = 0
battery = 0
# 構造行協議(line protocol)
line_protocol = f'airSensors,sensor_id=TLM0201 temperature={temp},humidity={humidity},voltage={voltage},battery={battery}'
# 呼叫函式將資料寫入 InfluxDB
write_to_influxdb(line_protocol)
請確保替換 YOUR_ORG
、YOUR_BUCKET
、YOUR_API_TOKEN
等參數為你 InfluxDB 的相應值。