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

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

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

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

Python

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

Q&A

解決済

2回答

3081閲覧

get_user() takes 1 positional argument but 2 were givenのエラーが解消できない。

charo01

総合スコア1

Twitter

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

Python

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

0グッド

0クリップ

投稿2022/04/13 08:40

Twitter APIを利用して「指定したアカウントのフォロワー情報を取得する」コードを作成しています。
作成を進める中で下記課題が解決できなかったため、ご相談させていただきました。

「課題」
get_user() takes 1 positional argument but 2 were givenのエラーが解消できない。
selfを加えてみたりと色々試しましたが解消できませんでした。

該当の箇所は
user = api.get_user(follower)
になります。

python

1consumer_key ='xxxxxxxxxxxxxxxxxxxxxxxxx' 2consumer_secret ='xxxxxxxxxxxxxxxxxxxxxxxxx' 3access_token ='xxxxxxxxxxxxxxxxxxxxxxxxx' 4access_token_secret ='xxxxxxxxxxxxxxxxxxxxxxxxx' 5 6#Tweepyのインストール 7!pip install tweepy 8 9#ライブラリ「Tweepy」の読み込み 10import time 11import tweepy 12import pandas as pd 13from tqdm import tqdm 14 15#APIの認証 16auth = tweepy.OAuthHandler(consumer_key,consumer_secret) 17 18#Twitterアカウントへの認証 19auth.set_access_token(access_token, access_token_secret) 20 21api = tweepy.API(auth,wait_on_rate_limit = True) 22 23#APIインスタンスの作成 24api = tweepy.API(auth) 25 26#search_idにフォロワーの情報を取得したいユーザーを指定します。 27serch_id = input("「@ユーザー名」を入力してください:") 28 29#Twitter API経由でフォロワーのIDを取得します。 30followers_ids = tweepy.Cursor(api.get_follower_ids, 31 id = serch_id, 32 cursor = -1).items() 33 34#取得したフォロワーの情報をリストに保存していきます。 35followers_list = [] 36for follower_id in followers_ids: 37 followers_list.append(follower_id) 38 39#取得したフォロワーのリスト情報をもとに、各フォロワーのプロフィール情報やフォロワー数などの情報を取得します。 40df = pd.DataFrame() 41 42for follower in tqdm(followers_list): 43 user = api.get_user(follower) 44 user_id = user.screen_name 45 description = user.description #プロフィール文 46 followers = user.followers_count #フォロワー数 47 friends = user.friends_count #フォロー数 48 tweets = user.statuses_count #ツイート数 49 created_at = user.created_at #アカウント作成日 50 protected = user.protected #鍵付きアカウントかどうか 51 52 data = pd.Series([user_id, 53 description, 54 followers, 55 friends, 56 tweets, 57 created_at, 58 protected]) 59 df = df.append(data, ignore_index=True) 60 time.sleep(.26) #15分間で900ユーザー分のみのデータしか取得できないので簡易的にスリープして対応 61 62#わかりやすいようにデータフレームにヘッダーを追加します。 63df.columns = ['user_id', 64 'description', 65 'followers', 66 'friends', 67 'tweets', 68 'created_at', 69 'protected']

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

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

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

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

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

guest

回答2

0

ベストアンサー

解決策

user = api.get_user(user_id=follower)

とします。

説明

Tweepyドキュメント をよく見ればわかりますが、get_user関数は、先頭のパラメータが「*」となっています。
これは、引数を指定する際、キーワード指定が強制されることを意味します。

これは Keyword-Only Arguments と呼ばれ、「*」以降の引数はキーワードを付けて呼び出さなければなりません、
PEP-3102 Keyword-Only Arguments

投稿2022/04/13 10:58

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

charo01

2022/04/15 08:40

回答ありがとうございます! ドキュメントは見たものの、初学者すぎて理解できていませんでした。 こちらで問題なく対応できたので助かりました。
guest

0

https://docs.tweepy.org/en/latest/api.html#tweepy.API.get_user
位置引数は取れなく、キーワード引数で指定する必要があるので

python

1user = api.get_user(user_id=follower)

とします。

投稿2022/04/13 10:51

quickquip

総合スコア11038

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

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

charo01

2022/04/15 08:41

回答ありがとうございます! 引数の指定に関して、勉強不足でした。 今回の回答を参考にして学習を進めていきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問