sehr seltsames Problem

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
Jenson
User
Beiträge: 7
Registriert: Freitag 16. März 2018, 21:59

Guten abend Zusammen,

ich bin noch relativ neu bei Python (knapp 6 Wochen) und von daher ist meine Frage vielleicht ziemlich dämlich. Aber leider hat mir diese Problem heute schon den kompletten Tag versaut.

Also ich habe einen Python code (3.6) geschrieben. Editor spyder über anaconda installiert. Das Programm lief jetzt gut eine Woche und seit heute morgen gibt es immer wieder verschieden Fehlermeldungen aus wenn ich es ausführe, wie z.B.:

Code: Alles auswählen

    actual_len = len(liste)
TypeError: object of type 'NoneType' has no len()

oder

Code: Alles auswählen

reward_balance_non_mod = s.get_reward_fund()["reward_balance"]
TypeError: 'NoneType' object is not subscriptable
Bei der funktion s.get_... handelt es sich um eine externe library an der sich aber auch nichts geändert hat:-(

Was ich überhaupt nicht verstehe ist folgendes. Ich kopiere die Zeilen aus dem Code heraus und füge sie in eine neue Datei ein und es läuft.
Ich habe nichts neu installiert oder sonst wie am Rechner verändert. Es hat einfach von einem Tag zum anderen aufgehört zu funktionieren.

Ich habe den Code, der gestern abend noch gelaufen ist, an einem anderen Rechner (gleiches System Anaconda mit spyder) getested und dort hat es auch nicht funktioniert.

Ich habe mittlerweile überhaupt keine Ahnung mehr, was ich machen oder wonach ich suchen soll, um dieses Problem zu lösen.

Hat hier irgendjemand eine Idee. Ich bin für jede Hilfe dankbar.

VG
Jens
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Aus dem was du zeigst kann man da nix schließen. liste ist halt keine, sondern None - musst du halt rausfinden warum. Woher kommt die denn?
Jenson
User
Beiträge: 7
Registriert: Freitag 16. März 2018, 21:59

was ich halt überhaupt nicht verstehe ist:
der code ist eine Woche gelaufen und dann auf einmal nicht mehr! Egal was ich auskommentiere er mekert immer bei der Funktion len() zur bestimmung der anzahl der Arrayeinträge...
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nochmal: das liegt daran, das die Liste keine ist. Wir verstehen das auch nicht, denn wir wissen nicht, woher die kommt. Solange du das nicht offenlegst - :K

Python jedenfalls hat keine magischen bugs, bei denen das plötzlich nicht mehr geht.
Jenson
User
Beiträge: 7
Registriert: Freitag 16. März 2018, 21:59

ok, ich kopiere mal was zusammen.

Es ist aber prinzipiell so wie ich es sage. Der Code lief. Dann seit heute morgen ohne das ich irgendetwas geändert hätte lief er nicht mehr.

Code: Alles auswählen

from steem import Steem
s = Steem()

account_under_suspicion = s.get_account_history('randowhale', index_from=-1, limit = 25)
actual_len = len(account_under_suspicion)
es ist noch eine einiges dazwischen aber grundsätzlich ist dies das Problem. Der Codschnipsel funktioniert in einem eigenen Skript nicht aber in der Originaldatei.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn dieser Code tut, aber der Code der mehr tut, den wir immer noch nicht sehen, es nicht tut, dann liegt es *trommelwirbel* an dem Code den wir nicht kennen.

Woran denn sonst? Relative Mondfeuchte und Quantenfluktuationen sind’s eher nicht. Und da du offensichtlich APIs benutzt, die übers Netzwerk arbeiten, hast du eh eine ganz dicke Komponente drin, für die du zb saubere Fehlerbehandlung programmieren musst. Kann schon sein, das None ein gültiges Datum ist.
Benutzeravatar
snafu
User
Beiträge: 6736
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Es kann viele Gründe haben, wieso du jetzt None anstatt der erwarteten Liste erhälst. Möglicherweise erlaubt der Server nur eine bestimmte Zahl an Anfragen pro Tag oder er hat gerade technische Probleme. Das hat also nichts mit Python direkt zu tun, sondern vermutlich mit der Quelle, aus der die Daten stammen.
Antworten