Hilfestellung für totalen Anfänger

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
randomdude
User
Beiträge: 1
Registriert: Freitag 30. September 2022, 16:05

Hi!

Ich bin wirklich neu, was Python angeht, und stolpere natürlich gleich bei meinem ersten "Projekt" über ein für mich irgendwie nicht lösbares Problem :oops:

Auf meinem Raspberry Pi, auf dem Home Assistant grundsätzlich läuft, habe ich gemäß dieser Anleitung Python "zum Laufen" gekriegt: https://smarterkram.de/2524/ Grundsätzlich funktioniert Python bei mir, da ein einfaches "hello world" klappt ;)

Nun möchte ich von einer "fremden" Webseite ein JSON auslesen und die Inhalte nutzen. Hierfür habe ich folgenden Code

Code: Alles auswählen

import requests


r = requests.get('eine.domain/act.json')
resp = resp.json()
Ich habe nun schon zahlreiche Dinge versucht, aber "resp" bleibt leer, obwohl unter der echten URL (also statt "eine.domain...") die Datei act.json aufrufbar ist.

Ich bin um jede Hilfe - und wenn es nur ein Hinweis oder eine Idee ist - super dankbar!!!
Benutzeravatar
noisefloor
User
Beiträge: 3853
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

der Code kann so nicht funktionieren, weil `resp.json()` an der Stelle nicht definiert ist. Da muss bei dir wenn `r.json()` stehen.

Was wird denn ausgegeben, wenn du nach der Zeile `r = requests(...)` eine Zeile `print(r)` einfügst.

Und du gibst doch wirklich eine komplette URL ein, also inkl. https:// , oder?

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ergänzend: Das sollte weder `r` noch `resp` heissen, sondern `response`. Bitte Namen nicht irgendwie kryptisch abkürzen.

Und es macht auch immer Sinn zu prüfen ob die Antwort vom Server keine HTTP-Fehlermeldung war. `Response`-Objekte haben dafür eine praktische `raise_for_status()`-Methode.

Und `resp` oder wie auch immer das heissen mag kann auch nicht „leer“ sein, denn die `json()`-Methode liefert immer einen Wert oder löst eine Ausnahme aus. Oder wie ist ”leer” hier definiert?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten