1

我的环境如下:

Python Python 3.6.5

sqlite3 3.28.0

import tweepy
import sqlite3

# 認証キーの設定
consumer_key = \
    "XXXXXXXX"
consumer_secret = "XXXXXXXX"
access_token = "XXXXXXXX"
access_token_secret = "XXXXXXXX"

# OAuth認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)


class Database:
    def __init__(self):
        self.dbpath = 'db.sqlite3'
        self.conn = sqlite3.connect(self.dbpath)
        self.c = self.conn.cursor()


db = Database()


def output_users_from_db():
    return db.c.execute('select name, comment from twitter_users')


def update_comment(name, comment='null'):
    db.c.execute("""update twitter_users set comment = ? where name = ?""", (comment, name))
    db.conn.commit()

if __name__ == "__main__":
    api = tweepy.API(auth)
    users_info_from_db = output_users_from_db()
    for i, user_info_on_db in enumerate(users_info_from_db):

        print(user_info_on_db[0])

        time_line = api.user_timeline(screen_name=user_info_on_db[0])
        for i, info in enumerate(time_line):
            # Below print functions can out put all of characters from twitter
            print(user_info_on_db[0]) # user account 
            print(info.text) # tweet
            break

上面的代码有效。但是如果我在下面写代码,

time_line = api.user_timeline(screen_name=user_info_on_db[0])
for i, info in enumerate(time_line):
    # Below print functions can out put all of characters from twitter
    print(user_info_on_db[0]) # user account 
    print(info.text) # tweet
    update_comment(user_info_on_db[0], comment=info.text)
    break

print()只能工作一次,它不能打印第二个帐户的推文。为什么包含代码时update_comment(user_info_on_db[0], comment=info.text)print()无法输出第二个帐户的推文?

4

0 回答 0