Seite 1 von 1

JSON in DICT umwandeln

Verfasst: Samstag 26. Oktober 2013, 15:43
von kwmaster
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

Re: JSON in DICT umwandeln

Verfasst: Samstag 26. Oktober 2013, 15:51
von Sirius3
@kwmaster: vielleicht solltest Du erst mal anschauen, was Du tatsächlich hast, bevor Du irgendwelche Vermutungen anstellst.

Re: JSON in DICT umwandeln

Verfasst: Samstag 26. Oktober 2013, 16:04
von kwmaster
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

Re: JSON in DICT umwandeln

Verfasst: Samstag 26. Oktober 2013, 16:11
von 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.

Re: JSON in DICT umwandeln

Verfasst: Samstag 26. Oktober 2013, 16:23
von kwmaster
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: