2010-10-14 77 views
5

Tôi viết code mà sẽ tìm kiếm twitter cho các từ khóa và lưu trữ chúng trong một cuốn từ điển python:việc truy cập từ điển python

 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 

Từ điển kết quả là:

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 

Làm thế nào tôi có thể truy cập vào ' from_user 'và' u 'trước khóa và giá trị là gì?

+0

'Contents' không thực sự là một cuốn từ điển. Nó là một danh sách có chứa một từ điển duy nhất. – hughdbrown

Trả lời

11
result[0][u'from_user'] 

Các u tiền tố có nghĩa rằng đó là một unicode thay vì một str.

1

Bạn truy cập vào mục ala

print Contents['from_user'] 

Các 'u' ở phía trước của chuỗi chỉ ra rằng chuỗi là uni-mã.

+0

nó thực sự sẽ là Nội dung [0] ['from_user'] như Ignacio đã ở trên ... Nội dung có vẻ là danh sách các từ điển dựa trên câu hỏi được hỏi. – Aaron

+0

Yup, không nhận thấy điều đó. – sizzzzlerz

0

lưu ý rằng trong Python 3.x bạn không cần 'u' trước khi chuỗi 'nguyên nhân tất cả các chuỗi là đối tượng unicode ...

này có thể thu được cũng bằng Python 2.x, chỉ đặt ở phía trên cùng của mã của bạn

from __future__ import unicode_literals 
0

kể từ khi mặt hàng đó quay trở lại là một danh sách có chứa một từ điển bạn sẽ làm gì:

print Contents[0]['from_user'] 

các u là dành cho unicode và bạn không cần phải đề cập đến rằng khi bạn truy cập dữ liệu. Python chăm sóc điều đó.

Kể từ khi dữ liệu trả về là trong một cuốn từ điển riêng của mình báo cáo kết quả cuối cùng sẽ là

print result['Contents'][0]['from_user'] 
Các vấn đề liên quan