プログラミング素人のArduino

技術屋の末端。プログラミングは専門外。 電気回路も専門外です。 コードに間違いなど見つけられたら、気軽にコメントください。 VC#、ラズパイ始めました。

pythonでフォロワーの一覧をListとして作成する

フォロワーの一覧を作るのにちょっとListの使い方でハマったので、書いておく。
結局はListのappendを使って加えていけばよい。
tweepyのCursorを使って取得するが、APIのRate limitに引っかからないように 1秒のwaitをいれながら読み込ませる。
(IDを変更すれば他のアカウントのフォロー・フォロワーも取得できるのだが、これでも300でRate limitにかかってしまった。もっと、waitを広げる必要があるのだと思う。)
※2017/11/16追記
 >Rate Limitは15分で300らしい。
 >ということは、1分あたり20で少なくとも3秒のwaitが必要ということか?
 > →4秒のWaitをいれたら、300で引っかかることはなくなった。

最終的に完成したのは↓
コメントアウトのほうではフォローのリストも作成可能。

def friend():
    follower1=[]
    follow = tweepy.Cursor(api.followers, id="s51517765") #自分をフォローしているひと
    #follow = tweepy.Cursor(api.follow, id="s51517765") #自分がフォーローしている人
    print("My follower!")
    for friend in follow.items():
        follower1.append(friend.screen_name)

        time.sleep(4) #apiのRate limitのため
    print(follower1)

以下,失敗例とともにListの使い方を整理しておこうと思います。

読み込んだScreen_nameはstring型なので、そのままListに加えていこうと、

follower1=[]
for friend in follow.items():
    follower1 +=friend.screen_name
>>>error

としてもErrorになった。

test='1111'
test+='2222'
print(test)
>>>11112222
test=['1111']
test+=['2222']
print(test)
>>>['1111','2222']

という形に書くことができれば、希望通りなのだが、screen_nameをstring型で取得してもListじゃないからうまくいかない。

ここで、そういえばJoinという関数があったことを思い出す。

test1=['1111','2222']
test=','.join(test1)
print(test)
>>>1111,2222

joinはsplitの逆変換と覚えておけばよい。