ist es möglich, csv-Dateidaten in Influxdb zu drücken. Beispielsweise hatte ich eine Sensorvorrichtung, die jede Minute Daten in die CSV-Datei aktualisiert. Ich muss einige Operationen darauf machen. Ich muss CSV-Datei Daten in Influxdb schieben und zu diesem Zweck schreibe ich ein Python-Skript. Ich habe versucht, einige Beispiele zu finden, konnte aber keine finden. unter meinem Python-Skript hatte nur lesen csv-Datei-Code, der einfach ist, aber kein Code, wie diese csv an Influx db übergeben. Meine CSV-Datei und Code, die ich versuche, sieht so aus.Importieren von CSV-Dateidaten in Influxdb
DATE,value
2017-03-23 11:50:38,16
2017-03-23 11:50:44,83
2017-03-23 11:50:50,16
2017-03-23 11:50:56,70
2017-03-23 11:51:02,96
und der Code ist
import datetime
import random
import time
import os
import csv
from csv import reader
import argparse
from influxdb import client as influxdb
db = influxdb.InfluxDBClient(host, 8086, rob, xxxx, sensors_data)
def read_data(filename):
with open(filename) as f:
reader = f.readlines()[1:]
for line in reader:
print line
if __name__ == '__main__':
filename = '/home/rob/myfile.csv'
a = read_data(filename)
ich diesen Link zu finden, aber seine verschiedenen und sich nicht nach meinen Anforderungen. http://coendegroot.com/grafana-influxdb-and-python-simple-sample/ Ich kann diese CSV-Datei lesen und jetzt muss ich csv-Datei Daten zu Influx db senden. aber ich weiß nicht, wie man mit Python-Skript vorgeht. Ich habe versucht, Beispiele zu finden, aber keinen Erfolg. Wenn mich jemand führt, werde ich sehr dankbar sein. thanx viel
ich ändern Sie den Code nach Pigueiras Vorschlag und es sieht so aus
import datetime
import random
import time
import os
import csv
from csv import reader
import argparse
from influxdb import client as influxdb
db = influxdb.InfluxDBClient(host, 8086, rob, xxxx, sensors_data)
def read_data():
with open('file.csv') as f:
return [x.split(',') for x in f.readlines()[1:]]
a = read_data()
for metric in a:
influx_metric = [{
'measurement': 'your_measurement',
'time': a[0],
'fields': {
'value': a[1]
}
}]
db.write_points(influx_metric)
ich diesen Code versucht, und es mir geben Fehler folgende
'NameError: name 'your_measurement' is not defined
und wenn ich wie verwenden wie 'Messung': 'your_measurement'. Dann habe ich diesen Fehler bekommen. .......
File "all_flux.py", line 37, in <module>
db.write_points(influx_metric)
File "/usr/local/lib/python2.7/dist-packages/influxdb/client.py", line 411, in write_points
tags=tags, protocol=protocol)
File "/usr/local/lib/python2.7/dist-packages/influxdb/client.py", line 461, in _write_points
protocol=protocol
File "/usr/local/lib/python2.7/dist-packages/influxdb/client.py", line 282, in write
data = make_lines(data, precision).encode('utf-8')
File "/usr/local/lib/python2.7/dist-packages/influxdb/line_protocol.py", line 154, in make_lines
_convert_timestamp(point['time'], precision)
File "/usr/local/lib/python2.7/dist-packages/influxdb/line_protocol.py", line 40, in _convert_timestamp
raise ValueError(timestamp)
ValueError: ['2017-03-23 11:50:38', '16\r\n']
das Datumsfeld oder Spalten wie folgt aussieht '2017.03.23 11.50.38' so verwende ich return [x.split ('') .. .. und ich ignoriere auch die erste Zeile. aber ich habe diesen Wert Fehler
thanx viel. Ich werde es versuchen und werde bald wiederkommen. – rob
Ich habe versucht, Ihren Code und es gibt mir folgenden Fehler '' NameError: Name 'Ihre_Messung' ist nicht definiert und wenn ich wie 'Messung' verwenden: 'Ihre_Messung'. Dann habe ich diesen Fehler bekommen. ....... "Datei" /usr/local/lib/python2.7/dist-packages/influxdb/line_protocol.py ", Zeile 40, in _convert_timestamp raise ValueError (Zeitstempel) ValueError: ['DATE, Wert '] ' – rob
Ich werde meine Frage mit Ihrem Code und folgendem Fehler aktualisieren. es könnte unordentlich aussehen. Vielen Dank für die Hilfe – rob