2013-03-14 62 views
0

我试图从u'text': & u'id':创建字符串在u'results':找到所以,我可以比较新ID和最后一个阅读并显示文本,如果它是新的。我目前无法解析(?)只有我想要的信息。Json Twitter搜索 - 如何

import json 
import urllib 
from pprint import pprint 
j =json.loads(urllib.urlopen('http://search.twitter.com/search.json?q=%23tory&result_type=recent&rpp=1').read()) 
pprint(j) 

这给了我

{u'completed_in': 0.007, 
u'max_id': 312184292639920129L, 
u'max_id_str': u'312184292639920129', 
u'next_page': u'?page=2&max_id=312184292639920129&q=%23tory&rpp=1&result_type=recent', 
u'page': 1, 
u'query': u'%23tory', 
u'refresh_url': u'?since_id=312184292639920129&q=%23tory&result_type=recent', 
u'results': [{u'created_at': u'Thu, 14 Mar 2013 12:51:50 +0000', 
       u'from_user': u'DerbysLabour', 
       u'from_user_id': 393219652, 
       u'from_user_id_str': u'393219652', 
       u'from_user_name': u'Derbyshire Labour', 
       u'geo': None, 
       u'id': 312184292639920129L, 
       u'id_str': u'312184292639920129', 
       u'iso_language_code': u'en', 
       u'metadata': {u'result_type': u'recent'}, 
       u'profile_image_url': u'http://a0.twimg.com/profile_images/1594091282/Labour_group_normal.jpg', 
       u'profile_image_url_https': u'https://si0.twimg.com/profile_images/1594091282/Labour_group_normal.jpg', 
       u'source': u'<a href="http://twitter.com/">web</a>', 
       u'text': u'RT @WubeyOneKenobi: Not seen a single #Tory campaigning for #DCC elections round #Glossop yet. Scared to come out?'}], 
u'results_per_page': 1, 
u'since_id': 0, 
u'since_id_str': u'0'} 

回报(视鸣叫)

我们如何阅读仅从结果文本& ID?

+0

JSON对象必须完全加载,你不能跳过其中的一部分。 – 2013-03-14 13:26:11

回答

2

j变量是dict,results是包含dict的数组。您可以提取值,像这样:

text = j['results'][0]['text'] 
id = j['results'][0]['id'] 

如果您有更多的结果,你可以做到以下几点:

texts = {} 
results = j['results'] 

for result in results: 
    text = result['text'] 
    id = results['id'] 
    texts[id] = text 

因此,你有一个单一的dict称为texts其中ID是关键。

+0

'results'是一个包含字典的数组。 – johankj 2013-03-14 13:40:39

+0

哦,woops ...谢谢。 – ferrix 2013-03-14 13:44:50