Gerade ist noch ein Problem aufgetaucht.
Der Code ist noch ziemlich gleich:
Code: Alles auswählen
def get_sensor_values(start, end):
with influxdb.DataFrameClient(database="ABC50", timeout=None) as client:
parameters = {'start_date': start, 'end_date': end}
points = []
for sensors, measurements in EXPORT_VALUES.items():
query_string = f'SELECT {",".join(measurement[1] for measurement in measurements)} FROM {sensors} WHERE time>= $start_date and time<= $end_date;'
result = client.query(query_string, bind_params=parameters, dropna=True)
if result:
points.append(result[sensors])
if not points:
return pd.DataFrame()
data = pd.concat(points, ignore_index=False, sort=False)
Fehlermeldung:
Code: Alles auswählen
Apr 17 10:38:11 engineering gunicorn[56594]: Internal Server Error: /export/export/
Apr 17 10:38:11 engineering gunicorn[56594]: Traceback (most recent call last):
Apr 17 10:38:11 engineering gunicorn[56594]: File "/home/dennis/venv-Website/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
Apr 17 10:38:11 engineering gunicorn[56594]: response = get_response(request)
Apr 17 10:38:11 engineering gunicorn[56594]: File "/home/dennis/venv-Website/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
Apr 17 10:38:11 engineering gunicorn[56594]: response = wrapped_callback(request, *callback_args, **callback_kwargs)
Apr 17 10:38:11 engineering gunicorn[56594]: File "/opt/TWxWebsite/TWxWebsite/evaluation/views.py", line 109, in export_file
Apr 17 10:38:11 engineering gunicorn[56594]: points_to_csv(get_sensor_values(start, end), index)
Apr 17 10:38:11 engineering gunicorn[56594]: File "/opt/TWxWebsite/TWxWebsite/evaluation/views.py", line 80, in get_sensor_values
Apr 17 10:38:11 engineering gunicorn[56594]: result = client.query(query_string, bind_params=parameters, dropna=True)
Apr 17 10:38:11 engineering gunicorn[56594]: File "/home/dennis/venv-Website/lib/python3.10/site-packages/influxdb/_dataframe_client.py", line 202, in query
Apr 17 10:38:11 engineering gunicorn[56594]: return self._to_dataframe(results, dropna,
Apr 17 10:38:11 engineering gunicorn[56594]: File "/home/dennis/venv-Website/lib/python3.10/site-packages/influxdb/_dataframe_client.py", line 222, in _to_dataframe
Apr 17 10:38:11 engineering gunicorn[56594]: df.time = pd.to_datetime(df.time)
Apr 17 10:38:11 engineering gunicorn[56594]: File "/home/dennis/venv-Website/lib/python3.10/site-packages/pandas/core/tools/datetimes.py", line 1072, in to_datetime
Apr 17 10:38:11 engineering gunicorn[56594]: values = convert_listlike(arg._values, format)
Apr 17 10:38:11 engineering gunicorn[56594]: File "/home/dennis/venv-Website/lib/python3.10/site-packages/pandas/core/tools/datetimes.py", line 435, in _convert_listlike_datetimes
Apr 17 10:38:11 engineering gunicorn[56594]: return _array_strptime_with_fallback(arg, name, utc, format, exact, errors)
Apr 17 10:38:11 engineering gunicorn[56594]: File "/home/dennis/venv-Website/lib/python3.10/site-packages/pandas/core/tools/datetimes.py", line 469, in _array_strptime_with_fallback
Apr 17 10:38:11 engineering gunicorn[56594]: result, tz_out = array_strptime(arg, fmt, exact=exact, errors=errors, utc=utc)
Apr 17 10:38:11 engineering gunicorn[56594]: File "pandas/_libs/tslibs/strptime.pyx", line 501, in pandas._libs.tslibs.strptime.array_strptime
Apr 17 10:38:11 engineering gunicorn[56594]: File "pandas/_libs/tslibs/strptime.pyx", line 451, in pandas._libs.tslibs.strptime.array_strptime
Apr 17 10:38:11 engineering gunicorn[56594]: File "pandas/_libs/tslibs/strptime.pyx", line 583, in pandas._libs.tslibs.strptime._parse_with_format
Apr 17 10:38:11 engineering gunicorn[56594]: ValueError: time data "2026-03-15T02:52:26Z" doesn't match format "%Y-%m-%dT%H:%M:%S.%f%z", at position 5160. You might want to try:
Apr 17 10:38:11 engineering gunicorn[56594]: - passing `format` if your strings have a consistent format;
Apr 17 10:38:11 engineering gunicorn[56594]: - passing `format='ISO8601'` if your strings are all ISO8601 but not necessarily in exactly the same format;
Apr 17 10:38:11 engineering gunicorn[56594]: - passing `format='mixed'`, and the format will be inferred for each element individually. You might want to use `dayfirst` alongside this.
Ich gebe nirgends das Format `%Y-%m-%dT%H:%M:%S.%f%z`an. Das wird nach meinem Verständnis irgendwo intern gemacht. Wo setze ich das richtige und wie würde das aussehen?
Ich bin mal durch die Datenbank und der Großteil der Zeitstempel treffen auf das Format zu. Der ganze April funktioniert, im März habe ich diesen Zeitstempel in dem das `.%f`fehlt. Wenn das nur ein "Ausrutscher wäre, würde ich den einfach löschen. Allerdings will ich den Fehler in Zukunft vermeiden und daher am besten gleich richtig damit umgehen.
Habt ihr eine Idee?
Danke und Grüße
Dennis