2010-10-14 5 views
5

ich Code schreibe, dass Twitter nach Schlüsselwörtern suchen und speichern sie in einem Python-Wörterbuch:zugreifenden Python Wörterbuch

 base_url = 'http://search.twitter.com/search.json?rpp=100&q=4sq.com/' 
     query = '7bOHRP' 
     url_string = base_url + query 
     logging.info("url string = " + url_string) 
     json_text = fetch(url_string) 
     json_response = simplejson.loads(json_text.content)            
     result = json_response['results'] 
     print "Contents" 
     print result 

Das resultierende Wörterbuch ist:

Contents[{ 
    u 'iso_language_code': u 'en', 
    u 'text': u "I'm at Cafe en Seine (40 Dawson Street, Dublin) w/ 2 others. http://4sq.com/7bOHRP", 
    u 'created_at': u 'Wed, 06 Oct 2010 23:37:02 +0000', 
    u 'profile_image_url': u 'http://a1.twimg.com/profile_images/573130785/twitterProfilePhoto_normal.jpg', 
    u 'source': u '<a href="http://foursquare.com" rel="nofollow">foursquare</a>', 
    u 'place': { 
     u 'type': u 'neighborhood', 
     u 'id': u '898cf727ca504e96', 
     u 'full_name': u 'Mansion House B, Dublin' 
    }, 
    u 'from_user': u 'pkerssemakers', 
    u 'from_user_id': 60241195, 
    u 'to_user_id': None, 
    u 'geo': None, 
    u 'id': 26597357992, 
    u 'metadata': { 
     u 'result_type': u 'recent' 
    } 
}] 
Status: 200 OK 
Content - Type: text/html;charset = utf - 8 
Cache - Control: no - cache 
Expires: Fri, 01 Jan 1990 00: 00: 00 GMT 
Content - Length: 0 

Wie kann ich den Zugriff auf " from_user 'und was ist das' u 'vor dem Schlüssel und Wert?

+0

'Contents' ist nicht wirklich ein Wörterbuch sein. Es ist eine Liste, die ein einzelnes Wörterbuch enthält. – hughdbrown

Antwort

11
result[0][u'from_user'] 

Der u Präfix bedeutet, dass es ein unicode anstelle ein str ist.

1

Sie greifen auf das Element ala

print Contents['from_user'] 

Die 'u' vor der Zeichenfolge gibt an, dass die Zeichenfolge uni-Code.

+0

wäre es eigentlich Inhalt [0] ['from_user'] wie Ignacio oben ... Inhalt scheint eine Liste von Wörterbüchern basierend auf der gestellten Frage zu sein. – Aaron

+0

Yup, habe das nicht bemerkt. – sizzzzlerz

0

beachten Sie, dass Sie in Python 3.x brauchen nicht die ‚u‘ vor der Zeichenfolge ‚cause all die Zeichenfolge sind Unicode-Objekt ...

dies auch in Python 2.x erhalten werden kann, nur an der Spitze des Codes setzen

from __future__ import unicode_literals 
0

Da der Artikel ist ein Wörterbuch eine Liste zurückgegeben enthält, die Sie tun würde:

print Contents[0]['from_user'] 

die u für Unicode ist und Sie nicht erwähnen müssen, dass, wenn Sie Zugriff die Daten. Python kümmert sich darum.

Da die Daten in einem Wörterbuch zurück selbst die Endabrechnung würde

print result['Contents'][0]['from_user']