InfluxDB mit Python schreiben

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
redjudge
User
Beiträge: 1
Registriert: Sonntag 18. Dezember 2022, 12:27

Hohoho und Frohe Weihnachten,

ich habe mit meinen Unkenntnissen versucht zwei Python Skripte zu vereinen.

Mein Code:

Code: Alles auswählen

        print("Beginne Influx-Zeug")

        #Daten zusammentragen
        influx_body = [
        {
        "measurement": "pvheater",
        "tags": "_",
        "time": now2,
        "fields": {
                'akt_power': akt_power,
                'ww_temp': ww_temp,
                'int_temp': int_temp,
                'dc_power1': dc_power1,
                'dc_power2': dc_power2,
                'dc_power3': dc_power3
                }
        }
        ]

#       if protocol == 'json':
#       influx_body2 = make_lines(influx_body).encode('utf-8')

        print("influx_body ist:")
        print(influx_body)
#       print("influx_body2 ist:")
#       print(influx_body2)

        print("Schreibe in Datenbank")
        client.write_points(influx_body, time_precision='m')
        return
        print("In Datenbank geschrieben")
verursacht die Fehlermeldung:
Traceback (most recent call last):
File "/home/redjudge/heater.py", line 319, in <module>
main()
File "/home/redjudge/heater.py", line 310, in main
client.write_points(influx_body, time_precision='m')
File "/usr/lib/python3/dist-packages/influxdb/client.py", line 603, in write_points
return self._write_points(points=points,
File "/usr/lib/python3/dist-packages/influxdb/client.py", line 681, in _write_points
self.write(
File "/usr/lib/python3/dist-packages/influxdb/client.py", line 407, in write
data = make_lines(data, precision).encode('utf-8')
File "/usr/lib/python3/dist-packages/influxdb/line_protocol.py", line 201, in make_lines
line = make_line(
File "/usr/lib/python3/dist-packages/influxdb/line_protocol.py", line 151, in make_line
for tag_key in sorted(tags.keys()):
AttributeError: 'str' object has no attribute 'keys'
Mit dem make_lines komme ich nicht weiter.
Brauche bitte einen Tipp, mir fehlt leider das Detailwissen.

Grüße und vielen Dank.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@redjudge: Ich würde mal ganz stark vermuten der "tags"-Eintrag sollte nicht einfach nur eine Zeichenkette sein. Näheres sollte die Dokumentation von dem Package verraten das Du da verwendest.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten