Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在数据库中存储趋势而不是打印趋势时出现Tweepy异常_Python 3.x_Twitter_Tweepy - Fatal编程技术网

Python 3.x 在数据库中存储趋势而不是打印趋势时出现Tweepy异常

Python 3.x 在数据库中存储趋势而不是打印趋势时出现Tweepy异常,python-3.x,twitter,tweepy,Python 3.x,Twitter,Tweepy,我正在使用Python 3.6.2和Tweepy 3.3.0 因此,当我尝试通过Tweepy API从Twitter检索趋势并在控制台中打印它们时,效果非常好,如下所示: auth = tweepy.OAuthHandler(cons_tok, cons_sec) auth.set_access_token(app_tok, app_sec) twitter_api = tweepy.API(auth) trends = twitter_api.trends_place(1) for tre

我正在使用Python 3.6.2和Tweepy 3.3.0

因此,当我尝试通过Tweepy API从Twitter检索趋势并在控制台中打印它们时,效果非常好,如下所示:

auth = tweepy.OAuthHandler(cons_tok, cons_sec)
auth.set_access_token(app_tok, app_sec)
twitter_api = tweepy.API(auth)

trends = twitter_api.trends_place(1)

for trend in trends[0]["trends"]:
    print(trend['name'])
它很好用,我有一个清单

现在,当我尝试将这些存储到数据库中时(我选择SQLite只是为了尝试):

这只是我存储趋势数据的部分。数据库和表都已创建


运行此操作会创建一个Tweepy异常,当在线搜索时,它会说这是时间限制,但如果是这样,为什么我刚打印时,它工作正常,而在我尝试存储它们时却不行?

没有可插入值的表,您提供的代码会引发异常:

self.c.executemany("INSERT INTO trend_data VALUES (?,?,?,?, DATETIME('now'))", trend_data)
sqlite3.OperationalError: no such table: trend_data
只需在init方法中添加一行即可创建表:

self.c.execute("""CREATE TABLE mytable
                 (c1,c2,c3,c4,c5)""")
并使用此选项填充值:

self.c.executemany("INSERT INTO mytable VALUES (?,?,?,?, DATETIME('now'))", trend_data)

没有可插入值的表,您提供的代码引发异常:

self.c.executemany("INSERT INTO trend_data VALUES (?,?,?,?, DATETIME('now'))", trend_data)
sqlite3.OperationalError: no such table: trend_data
只需在init方法中添加一行即可创建表:

self.c.execute("""CREATE TABLE mytable
                 (c1,c2,c3,c4,c5)""")
并使用此选项填充值:

self.c.executemany("INSERT INTO mytable VALUES (?,?,?,?, DATETIME('now'))", trend_data)

在我的问题中,我直截了当地说:“这只是我存储趋势数据的部分。”这意味着,为了重新创建整个场景,您只需要创建一个表并进行导入,这显然是我做的。请参考SO政策中关于最小、完整和可验证的示例。我不可能猜到你写的是故意的,而不是程序员的错误!再次:我说:这只是我存储趋势数据的部分。数据库和表都已创建。所以我说我已经创建了表,你告诉我你的错误是你必须创建一个表。在我的问题中,我直截了当地说:“这只是我存储趋势数据的部分。”这意味着为了重新创建整个场景,你只需要创建一个表并进行导入,很明显我是这样做的。参考SO政策中关于最小、完整和可验证的示例。我不可能猜到你写的是故意的,而不是程序员的错误!再次:我说:这只是我存储趋势数据的部分。数据库和表都已创建。所以我说我已经创建了一个表,你告诉我你的错误是你必须创建一个表。