.split() Hilfe

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
pythonanfaenger1508
User
Beiträge: 12
Registriert: Dienstag 14. Januar 2020, 11:30

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!
__deets__
User
Beiträge: 14543
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst über die Einträge der Liste iterieren, mit einer for-Schleife.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
pythonanfaenger1508
User
Beiträge: 12
Registriert: Dienstag 14. Januar 2020, 11:30

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.
pythonanfaenger1508
User
Beiträge: 12
Registriert: Dienstag 14. Januar 2020, 11:30

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'
__deets__
User
Beiträge: 14543
Registriert: Mittwoch 14. Oktober 2015, 14:29

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?
pythonanfaenger1508
User
Beiträge: 12
Registriert: Dienstag 14. Januar 2020, 11:30

leider komme ich gar nicht weiter
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

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).
pythonanfaenger1508
User
Beiträge: 12
Registriert: Dienstag 14. Januar 2020, 11:30

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!
Benutzeravatar
__blackjack__
User
Beiträge: 13113
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten