Seite 1 von 1

JSON teil von string auslesen?

Verfasst: Samstag 27. Juli 2024, 14:21
von Pingu
Hallo zusammen

Ich muss aus einem string den JSON teil einzeln extracten und das attribut, das hinten dran ist extracten.
Anschliessend muss ich mit diesem attribut die korrekte liste im JSON string ausgeben.
Irgendwie schaffe ich es nicht.

also der string sieht etwa so aus:
'{"tarahumar": 2003, "fustier": ["grugrus", "swadeshi", "trillionize", "unpoeticized", "pseudoperipteral", "drakefly", "towaway"], "obtainers": "henchman", "stranglingly": "podded", "quatorzain": 2828.6, "funnel": "coscoroba", "motherly": 1070, "equitation": 4590, "nongraphitic": ["overhumane", "natica", "raspberries", "digestedly", "choraleon", "hypoleucocytosis"], "puckerier": "illegitimated"} equitation'

Mit dem letzten wort (equitation) muss ich dann die korrekte liste mit print() ausgeben.


Könntet ihr mir da echt auf die Sprünge helfen :?:

Re: JSON teil von string auslesen?

Verfasst: Montag 29. Juli 2024, 12:57
von einfachTobi
Ist das immer in dieser Form strukturiert? Falls ja, quick and dirty:

Code: Alles auswählen

import json

text = '{"tarahumar": 2003, "fustier": ["grugrus", "swadeshi", "trillionize", "unpoeticized", "pseudoperipteral", "drakefly", "towaway"], "obtainers": "henchman", "stranglingly": "podded", "quatorzain": 2828.6, "funnel": "coscoroba", "motherly": 1070, "equitation": 4590, "nongraphitic": ["overhumane", "natica", "raspberries", "digestedly", "choraleon", "hypoleucocytosis"], "puckerier": "illegitimated"} equitation'

separation_index = text[::-1].find(" ")
key = text [-separation_index:]
text_json = json.loads(text[:-separation_index])

print("Key to look up: ", key)
print("Loaded JSON: ", text_json)
print("Value: ", text_json[key])
Das ist allerdings halbwegs unelegent und nicht sehr robust. Wenn du allerdings sicherstellen kannst, dass die Struktur immer gleich ist, weil z. B. computergeneriert, wäre das ein gangbarer Weg. Daher wäre es interessant, wie der String denn genau aussieht und nicht nur in etwa.

Re: JSON teil von string auslesen?

Verfasst: Montag 29. Juli 2024, 13:55
von Sirius3
@einfachTobi: es gibt auch rfind.
Hier würde man aber einfach rsplit oder rpartition benutzen.

Code: Alles auswählen

json_text, _, key = text.rpartition(" ")
@Pingu: woher kommt diese Zeile? Wer produziert die und kann man nicht die Produzentenseite dazu bringen, ein sinnvolles Format zu verwenden?

Re: JSON teil von string auslesen?

Verfasst: Montag 29. Juli 2024, 18:55
von __blackjack__
Solange da noch Fragen sind, würde ich sagen die robusteste Variante ist erst mal:

Code: Alles auswählen

data = json.loads(text.removesuffix(" equitation"))