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: 13128
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.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Antworten