質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

4785閲覧

TweepyでAttributeError: 'function' object has no attribute 'search'のエラーが出ます。

ora

総合スコア5

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/02 12:35

編集2020/05/02 14:39

Twwpyでのエラー

ツイートを検索していいねをするだけのコードなんですが、
以下のコードでエラーが出ます。

[家]とツイートをしているツイートを新着50件検索を行いいいねするコードですが、
AttributeError: 'function' object has no attribute 'search'
こちらのエラーが表示されます。

line 14は
for status in api.search(q='家', count=50)
こちらの行になりますが、
どうすればこのエラーを消すことができ正常に動かすことができますか?

発生している問題・エラーメッセージ

Traceback (most recent call last): File "favo.py", line 14, in <module> for status in api.search(q='家', count=50): AttributeError: 'function' object has no attribute 'search'

該当のソースコード

python

1import tweepy 2 3def api(): 4 consumer_key = '' 5 consumer_secret = '' 6 access_key = '' 7 access_secret = '' 8 9 auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 10 auth.set_access_token(access_key, access_secret) 11 api = tweepy.API(auth) 12 return api 13 14for status in api.search(q='家', count=50): 15 tweet_id = status.id 16 # 例外処理をする 17 try: 18 # いいね実行 19 api.create_favorite(tweet_id) 20 except: 21 print('error') 22

以下のコードも同じように
AttributeError: 'function' object has no attribute 'search'
searchの部分がエラーとなってしまいます。
回答くださったようにsearch_results=api.searchをapi().searchにしてみましたがエラーは変わらず…

他の同じようなコードも色々と試してみたのですが、
同じようなエラーばかり出てきてしまいます。

何か分かりましたらお教えいただけますと助かります。

python

1import tweepy 2 3def api(): 4 consumer_key = '' 5 consumer_secret = '' 6 access_key = '' 7 access_secret = '' 8 9 auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 10 auth.set_access_token(access_key, access_secret) 11 api = tweepy.API(auth) 12 13q_list=["家"] 14count=50#取得するツイート数 15for q in q_list: 16 print("Now:QUERY-->>{}".format(q)) 17 search_results=api.search(q=q,count=count)#ツイートのデータであるstatusオブジェクトを取得 18 for status in search_results: 19 tweet_id=status.id#ツイートidにアクセス 20 try: 21 api.create_favorite(tweet_id)#ファボ 22 except: 23 pass 24

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

関数の返り値を利用したいのであればapi().search(q='家', count=50)でどうでしょう。

()がないと関数そのものを指すためうまくいかなくなります。

投稿2020/05/02 13:38

mistn

総合スコア1191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ora

2020/05/02 14:26

回答くださり助かります。 api().search(q='家', count=50)に訂正し試してみたところ質問のエラーは表示されなくなりました。ありがとうございます。 ですがexcept:のprintでのerrorがツイート取得数50個分のerrorがprintの結果として表示され、いいねができない状態でした… ワードをツイート件数が多いものに変更してみたりしたのですがうまくいかない状態です。 他にいいねができる別のコードがあるのですが、そちらでは問題なくいいねができている状態なのでアカウントのレート制限などでもないかと思われます。 公開されてるいくつかのコードを数十種類ほどapi().searchに直して試してみたですがこれも 同じくAttributeError: 'function' object has no attribute 'search'のエラーが出てきてしまいまして詰まっている状態です。 他に試してみた同様のエラーの出るコードも追記で載せるので、 何か気づいたことがあれば返信いただけますと助かります。
mistn

2020/05/02 15:02

回答をもう一度繰り返すようになりますが api は関数そのものであり関数の返り値ではありません。 関数の返り値を使いたい場合は api() としてください。
ora

2020/05/02 15:10

api.search(q='家', count=50)をapi().search(q='家', count=50)に直しましたがそういうことではないですか?
mistn

2020/05/02 15:34

いいねをするときにも使っていますよね?
tabetaiomoti

2021/10/10 09:00

for status in api.search_tweets(q='家', count=50): でどうです?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問