String to Array

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

Das sieht nach JSON aus. Das kannst du mit den gleichnamigen Modul laden, und dann hast du eine Datenstruktur - Liste mit Wörterbuch. Bzw list und dict auf englisch. Das kannst du dann weiterverarbeiten.
Benutzeravatar
snafu
User
Beiträge: 6881
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Das kann doch wohl nicht dein Ernst sein. Es war mit Sicherheit gemeint, dass du ganz einfach den JSON-String an json.loads() übergeben sollst...

EDIT:
Ich kann mir nicht helfen, aber bei Leuten, die den Encoder (der übrigens viel später als loads() in der Doku vorkommt) bei Übergabe eines Strings als Lösung ansehen, nur weil sie anschließend mit Python-Boardmitteln die String-Repräsentation geparst haben (was ja auch ganz ohne json-Modul gegangen wäre), da habe ich immer einen starken Troll-Verdacht. Vielleicht bin ich auch etwas betriebsblind, weil ich ausgehend von meinen Python-Erfahrungen einfach nicht glauben kann, dass jemand solche - ich nenn es mal - "seltsamen" Gedankengänge hat.
Zuletzt geändert von snafu am Freitag 22. Dezember 2017, 01:31, insgesamt 1-mal geändert.
Benutzeravatar
snafu
User
Beiträge: 6881
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Na, wie gesagt einfach deinen String übergeben:

Code: Alles auswählen

data = json.loads(dein_string)
Dann hast du ein dict und dieses kannst du verarbeiten.
Benutzeravatar
snafu
User
Beiträge: 6881
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dann zeig mal den String, den du übergibst, im Original.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist kein String (auch in keiner anderen Sprache). Sondern die literale Darstellung von Listen und Wörterbüchern. Mit anderen Worten: das ist schon das Endergebnis. Aber so kommt das garantiert nicht von einer Webseite. Von dort kommt ein String:

'[{ "key": 10 }]'

Man beachte die äußeren Anführungszeichen.
Sirius3
User
Beiträge: 18299
Registriert: Sonntag 21. Oktober 2012, 17:20

@onoli: wie auch immer Dein Teil "Daten von der Webseite holen" aussieht, der macht schon alles was Du brauchst. Jetzt mußt Du nur noch auf die Daten, die schon in einer Pythonstruktur vorliegen, zugreifen. Dazu solltest Du Dir dringend ein Grundlagentutorial durchlesen, um die verschiedenen Datentypen von Python kennen zu lernen.

Code: Alles auswählen

import json
personendaten = [{u'alter': u'21', u'vorname': u'urs'}]
print personendaten['alter']
onoli
User
Beiträge: 2
Registriert: Freitag 22. Dezember 2017, 15:35

Sirius3 hat geschrieben:@onoli: wie auch immer Dein Teil "Daten von der Webseite holen" aussieht, der macht schon alles was Du brauchst. Jetzt mußt Du nur noch auf die Daten, die schon in einer Pythonstruktur vorliegen, zugreifen. Dazu solltest Du Dir dringend ein Grundlagentutorial durchlesen, um die verschiedenen Datentypen von Python kennen zu lernen.

Code: Alles auswählen

import json
personendaten = [{u'alter': u'21', u'vorname': u'urs'}]
print personendaten['alter']
Danke für deinen Input.
Mein Konto wurde aus irgend einem Grund gelöscht und meine Posts ebenso.
Nichtsdestotrotz ich habe mir das Tutorial durchgelesen, leider funktioniert es noch nicht ganz wie ich dies gerne hätte.

Ich habe momentan keine Ahnung was er mit dem list => dict gemacht hat.

Code: Alles auswählen

=> Output als print

import json
personendaten = [{u'alter': u'21', u'vorname': u'urs'}]
type(personendaten)
=> <type 'list'>
personendaten = dict(personendaten)
type(personendaten)
=> <type 'dict'>
print (personendaten['vorname'])
=> alter
print (personendaten)
{u'vorname': u'alter'}
print (personendaten['alter'])
=> Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'alter'

Sirius3
User
Beiträge: 18299
Registriert: Sonntag 21. Oktober 2012, 17:20

@onoli: sorry, hab die Liste übersehen. Aus irgendeinem Grund hast Du eine Liste mit einem Element. Das mußt Du zuerst ansprechen:

Code: Alles auswählen

print personendaten[0]['alter']
Da Du nicht verrätst, wie Du an die Daten kommst, kann man aber auch nicht sagen, ob das alles so richtig ist.
onoli
User
Beiträge: 2
Registriert: Freitag 22. Dezember 2017, 15:35

Sirius3 hat geschrieben:@onoli: sorry, hab die Liste übersehen. Aus irgendeinem Grund hast Du eine Liste mit einem Element. Das mußt Du zuerst ansprechen:

Code: Alles auswählen

print personendaten[0]['alter']
Da Du nicht verrätst, wie Du an die Daten kommst, kann man aber auch nicht sagen, ob das alles so richtig ist.
Perfekt :)
Danke dir vielmals, jetzt hat es funktioniert. :D :D
Antworten