0

我正在使用 twython 连接到 Twitter API 并检索查询。这是我得到的一个例子:

---START----

{u'next_page': u'?page=2&max_id=215397707'
....
: 215397707794219008L, u'page': 1}

----END----

我感兴趣的是这样开始的实际推文:

u'text': u'@ilariargn devi fare un corso sul respiro! Sarebbero 7686879 euro, ci vieni? #perderetempo', u'from_user_name':

所以“u'text':u'”和“u'from_user_name'”之间的所有内容。我试图首先使用键和值来获取这些信息,因为它是一个字典。不工作。然后我尝试将字典转换为列表并使用字符串搜索来获取位置。也不行。我如何获得这些信息?

我尝试了建议的解决方案并收到以下消息:

tweet = json.loads(results)[u'text']
File "C:\Python27\lib\json\__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

而对于第二个解决方案 - 如果我写 [t'text] 我得到一个语法错误:

tweet = results[u'text']
KeyError: u'text'
4

2 回答 2

2

行。经过一些试验,我找到了以下访问实际推文的解决方案:

counter = 1
for key, value in results.iteritems():
    if key == "results":
        svalue = str(value)
        while counter != -1:
            tweetposstart = svalue.find("u'text'",counter)
            tweetposend = svalue.find("u'from_user_name'",counter)
            if tweetposstart != -1:
                tweet = svalue[tweetposstart:tweetposend]
                print tweet
                counter = counter + tweetposstart
            else:
                counter = tweetposstart
于 2012-06-21T08:06:44.140 回答
0

你得到的是一个 json 对象:

import json
tweet = json.loads(whatyouget)[u'text']

或者,如果你得到已经解析的 dic,那么:

tweet = whatyouget[t'text']
于 2012-06-20T14:44:06.830 回答