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

2 番目の解決策として、 [t'text] と書くと構文エラーが発生します。

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

2 に答える 2

2

Ok。いくつかの試行の後、実際のツイートにアクセスするための次の解決策を見つけました。

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 に答える