Seite 1 von 1

.split() Hilfe

Verfasst: Dienstag 14. Januar 2020, 11:41
von pythonanfaenger1508
Hallo zusammen,

ich bin ein blutiger Anfänger in Python und bräuchte bei einem Problem Hilfe.

Ich habe ein URL, die eine Liste im Json-Format hat.

So sieht ein Abschnitt der formattierten Liste aus:

"apm-trn-sapfiaccounting-lxprod-6.5.4-",
"apm-trn-sapfiaccounting-lxprod-6.6.2-",
"backup-default-logs-",
"backup-default-metrics-",
"backup-event-metrics-",
"bdasas-default-",
"bdasas-druid-",
"bdasas-hbase-",

etc.

Nun will ich diese Liste splitten bzw so umformen, dass da nur der erste Teil vor dem " - " steht.
Das kann man wohl mit .split() machen, allerdings verstehe ich nicht so ganz wie ich das umsetzen soll mit der URL.
In den ganzen Beispielen im internet ist da schon ein String gegeben und die werden einfach gesplittet. Ich habe für meinen Fall leider nichts bekommen.

Hier ist der Code, den ich bisher habe, wo ich die URL Abfrage

import requests
import json
r = requests.get('url', verify=False)
data= json.loads(r.text)
filter_list = data["result"]
print(filter_list)


Ich würde mich über eure Hilfe sehr freuen!

Re: .split() Hilfe

Verfasst: Dienstag 14. Januar 2020, 13:03
von __deets__
Du musst über die Einträge der Liste iterieren, mit einer for-Schleife.

Re: .split() Hilfe

Verfasst: Dienstag 14. Januar 2020, 13:05
von Sirius3
Woher die Liste kommst, ist doch völlig unerheblich. Du hast eine Liste mit Strings `filter_list` und mit der kannst Du so weiter arbeiten, wie die ganzen Beispiele das auch machen.

Re: .split() Hilfe

Verfasst: Dienstag 14. Januar 2020, 13:07
von pythonanfaenger1508
Sirius3 hat geschrieben: Dienstag 14. Januar 2020, 13:05 Woher die Liste kommst, ist doch völlig unerheblich. Du hast eine Liste mit Strings `filter_list` und mit der kannst Du so weiter arbeiten, wie die ganzen Beispiele das auch machen.
naja, ich verstehe gerade wirklich nichts und habe keine Ahnung, wie ich weitermachen soll :cry:
Je mehr ich lese, desto mehr verwirrter werde ich.

Re: .split() Hilfe

Verfasst: Dienstag 14. Januar 2020, 13:13
von pythonanfaenger1508
data = filter_list.split("-")

for temp in data:
print temp


wenn ich das ausführe, bekomme ich die Fehlermeldung
AttributeError: 'list' object has no attribute 'split'

Re: .split() Hilfe

Verfasst: Dienstag 14. Januar 2020, 13:18
von __deets__
Du musst ja auch erst über die Elemente laufen, und die dann einzeln splitten. Wenn deine Mutter dir sagt, öffne mal alle Konserven auf dem Regal da vorne - setzt du den Öffner dann am Regal an?

Re: .split() Hilfe

Verfasst: Mittwoch 15. Januar 2020, 10:53
von pythonanfaenger1508
leider komme ich gar nicht weiter

Re: .split() Hilfe

Verfasst: Mittwoch 15. Januar 2020, 11:07
von Sirius3
Wie läuft man über die Elemente einer Liste, um etwas damit zu mache? (Alles was Du brauchst, hast Du schon in Deinem vorletzten Beitrag hier).

Re: .split() Hilfe

Verfasst: Mittwoch 15. Januar 2020, 15:19
von pythonanfaenger1508
import requests
import json
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

r = requests.get(url, verify=False)
data= json.loads(r.text)
filter_list = data["result"]

def split_string(filter_list):

list_string = filter_list.split(' - ')

# return list_string

print (split_string)



ich habe jetzt das hier zusammengebastelt. allerdings funktioniert print() bei mir jetzt nicht bzw das script gibt mir nichts auf die Konsole. Woran kann es liegen?
Danke für eure Hilfe im voraus!

Re: .split() Hilfe

Verfasst: Mittwoch 15. Januar 2020, 15:45
von __blackjack__
@pythonanfaenger1508: Das sollte sehr wohl etwas auf der Konsole ausgeben, sofern denn `url` definiert wäre. Dann gibt das `print()` die Funktion aus. Was natürlich keinen Sinn macht. Du willst ja wohl eher die Funktion *aufrufen*. Dann müsste die aber auch etwas zurückgeben was das `print()` dann ausgeben kann. Und es macht auch keinen Sinn den Code der ausserhalb der Funktion nicht funktioniert, in eine Funktion zu stecken. Davon bekommen Listen nicht auf magische Weise eine `split()`-Methode. Das ist ja immer noch der gleiche Fehler das so zu versuchen. Du setzt da immer noch den Dosenöffner am Regal an.

Arbeite am besten mal ein Grundlagentutorial durch. Der Umgang mit Grunddatentypen wie Listen, und Kontrollstrukturen, und das definieren und aufrufen von Funktionen sind absolute Grundlagen ohne die man nicht sinnvoll arbeiten kann. In der Python-Dokumentation gibt es beispielsweise so ein Tutorial.

Falls Du danach immer noch nicht klar kommst, zeige bitte ein lauffähiges Beispiel das nicht mit einem `NameError` aussteigt, und dann am besten auch nur Teile die für das Problem benötigt werden. Also eine Liste mit den Werten die Du da bekommst im Programm und keine Abfrage aus dem Netz.