JSON in DICT umwandeln

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
kwmaster
User
Beiträge: 3
Registriert: Freitag 25. Oktober 2013, 21:32

Hi zusammen,

habe versucht mittels tweepy die aktuellen Twitter-Trends abzurufen.
Tweepy sagt, dass ich als Rückgabewert ein JSON-Object erhalte:

Code: Alles auswählen

[{u'created_at': u'2013-10-26T14:28:39Z', u'trends': [{u'url': u'http://twitter.com/search?q=%23S04BVB', u'query': u'%23S04BVB', u'name': u'#S04BVB', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%23ccb13', u'query': u'%23ccb13', u'name': u'#ccb13', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%23Derby', u'query': u'%23Derby', u'name': u'#Derby', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%23H96HOF', u'query': u'%23H96HOF', u'name': u'#H96HOF', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%23FCBBSC', u'query': u'%23FCBBSC', u'name': u'#FCBBSC', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%22Islam+Ahmadiyya%22', u'query': u'%22Islam+Ahmadiyya%22', u'name': u'Islam Ahmadiyya', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%22Justin+Bieber%22', u'query': u'%22Justin+Bieber%22', u'name': u'Justin Bieber', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%23LPTBY', u'query': u'%23LPTBY', u'name': u'#LPTBY', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%23Revierderby', u'query': u'%23Revierderby', u'name': u'#Revierderby', u'promoted_content': None, u'events': None}, {u'url': u'http://twitter.com/search?q=%23ReasonsToSmile', u'query': u'%23ReasonsToSmile', u'name': u'#ReasonsToSmile', u'promoted_content': None, u'events': None}], u'as_of': u'2013-10-26T14:37:15Z', u'locations': [{u'woeid': 23424829, u'name': u'Germany'}]}]
Nun habe ich JSON importiert und folgenden Zeile versucht:

Code: Alles auswählen

trends = json.loads(tr_orig)
Als Fehler meldet mit IDLE folgendes:
trends = json.loads(tr_orig)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
Wenn ich nur "load" (ohne "S") nutze, erhalte ich diesen Fehler:
trends = json.load(tr_orig)
File "C:\Python27\lib\json\__init__.py", line 286, in load
return loads(fp.read(),
AttributeError: 'list' object has no attribute 'read'
Was ich eigentlich will, sind die einzelnen Trends auswerten.
Wie komme ich denn an diese Daten? Das geht doch nur, wenn ich es als Dict umwandel, oder?

Schonmal Danke!!!

Gruß

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

@kwmaster: vielleicht solltest Du erst mal anschauen, was Du tatsächlich hast, bevor Du irgendwelche Vermutungen anstellst.
kwmaster
User
Beiträge: 3
Registriert: Freitag 25. Oktober 2013, 21:32

Hi Sirius,

sei mir nicht böse, dass ich jetzt diese Frage stelle...

aber "was habe ich denn"???

Gruß

Kai

PS.: Bin noch nicht so weit mit Python... :K
BlackJack

@kwmaster: Wenn Du bei *der* Ausgabe nicht siehst was Du hast, solltest Du mal das Tutorial in der Python-Dokumentation durcharbeiten. Die handvoll Grunddatentypen mit denen man ständig zu tun hat, sollte man erkennen können.

Edit: Ansonsten ist die `type()`-Funktion ganz nützlich um heraus zu finden was für einen Typ ein Objekt hat.
kwmaster
User
Beiträge: 3
Registriert: Freitag 25. Oktober 2013, 21:32

Ok,

ich habe eine verschachtelte Liste [] mit Dictionaries {}.

Code: Alles auswählen

trends = tr_orig[0]["trends"]

for trend in trends:
    print trend["url"]
DANKE für den A....tritt :oops:
Antworten