0

我正在尝试从u'text':&u'id':中找到的字符串创建字符串,u'results':以便我可以将新的 ID 与最后一个读取的 ID 进行比较,如果它是新的,则显示文本。我目前无法仅解析(?)我想要的信息。

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?

4

1 回答 1

2

j变量是 a dict,并且是一个包含 a的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 是键。

于 2013-03-14T13:32:08.333 回答