Seite 1 von 1

Daten auswerten aus String

Verfasst: Sonntag 21. September 2014, 19:45
von M4rcde
Hallo Python-profis!

Ich bin relativ neu in Python, finde die Sprache ansich aber genial. Habe schon mit GPIO herumgespielt, aber möchte nun etwas mehr dazulernen.
Von einer API bekomme ich nach einer Anfrage einen Datensatz zurück:
{
"data": [
{
"name": "abc",
"id": "123"
},
{
"name": "def",
"id": "456"
},
{
"name": "ghi",
"id": "789"
}
]}

Habe die Daten aufgrund von Datenschutz und zur Vereinfachung verändert. Nun, dieser Text ist in einer Variable gespeichert und kann auch ausgegeben werden. Allerdings enthält er nicht nur 3 sondern einige hundert Datensätze.
1. Wie bekomme ich heraus wieviele Datensätze ich zurückbekommen habe? In diesem Fall sind es 3... Dachte schon an die Möglichkeit das Wort "id" zu zählen.
2. Wie kann ich jede einzelne ID in eine Variable speichern (ist schon lange her dass ich soetwas gemacht habe). Gab da mal in PHP foreach odersowas...

Mir reichen simple Links oder Namen der Funktionen aus :) Ich google dann selbst weiter! Aber derzeit bin ich etwas überrumpelt von den vielen verschiendenen Lösungswegen die mir Google bietet.



Ich danke euch im vorraus für jede Hilfe!

Marc

Re: Daten auswerten aus String

Verfasst: Sonntag 21. September 2014, 19:57
von darktrym
Ist das nicht Json?

Re: Daten auswerten aus String

Verfasst: Sonntag 21. September 2014, 20:20
von M4rcde
darktrym hat geschrieben:Ist das nicht Json?
Alles klar danke! Also json kann wohl encodieren und dekodieren! Habe nun aber lange gesucht und nicht gefunden wie ich jede id einzeln "auslesen und verarbeiten" kann... json verändert wohl nur die Struktur oderso... Kannst du mir da auch etwas genauer helfen?

UPDATE:

Code: Alles auswählen

for id in finduser.values():
    print id
finduser ist die Variable inder sich alle Datensätze befinden (so wie sie oben stehen). Und das print id sollte die id ausgeben...
So habe ich es hier entnommen: http://scribu.net/blog/python-equivalen ... reach.html

Re: Daten auswerten aus String

Verfasst: Sonntag 21. September 2014, 20:26
von cofi
Hey du wolltest doch selbst weiter googeln ;)

Spass :)

Willkommen im Forum!

Fuer JSON gibt es das json Modul.
Und solltest du das ganze ueber eine Anfrage generieren, interessiert dich vielleicht das `requests` Modul, das eine JSON Antwort direkt verarbeiten kann:

Code: Alles auswählen

In [1]: import requests

In [2]: r = requests.get('https://github.com/timeline.json')

In [3]: r.json
Out[3]: 
{u'documentation_url': u'https://developer.github.com/v3/activity/events/#list-public-events',
 u'message': u"Hello there, wayfaring stranger. If you're reading this then you probably didn't see our blog post a couple of years back announcing that this API would go away: http://git.io/17AROg Fear not, you should be able to get what you need from the shiny new Events API instead."}
In jedem Fall bekommst du ein Dictionary zurueck.

Re: Daten auswerten aus String

Verfasst: Montag 22. September 2014, 20:22
von M4rcde
Also, json war der absolut falscheste Ansatz :D
Ist angeblich eine stinknormale Python Datenübergabe und das was ich machen wollte wird mit diesem Code erledigt:

Code: Alles auswählen

for photo in response['data']:
        print photo['source']
vll kann ich damit ja anderen helfen :) Danke trotzdem für die JSON ansätze! Auch etwas sehr interessantes!

Re: Daten auswerten aus String

Verfasst: Montag 22. September 2014, 21:06
von cofi
Da es keine "stinknormale Python Datenuebergabe" gibt, hast du dir die JSON Antworten selbst zuzuschreiben. Schliesslich hast du von einer Textform gesprochen ;)
Was du da hast ist ein Dictionary und das faellt ueblicherweise auch aus JSON heraus ;)

Re: Daten auswerten aus String

Verfasst: Dienstag 23. September 2014, 18:38
von M4rcde
Gut zu wissen :) Danke