我是Python新手。我使用这段代码来获取用户的详细信息(目前在Python shell中)。
import tweepy
import time
import sqlite3
import os
from datetime import datetime
auth = tweepy.OAuthHandler(key,secret)
auth.set_access_token(access_token, access_secter)
api = tweepy.API(auth)
user = api.get_user('<the_user_to_query_on_here>')
print ("User id: " + user.id_str)
print ("Screen_Name: " + user.screen_name)
print (user.name)
print ("Description: " + user.description)
print ("Language: " + user.lang)
print ("Account created at: " + str(user.created_at))
print ("Location: " + user.location)
print ("Time zone: " + user.time_zone)
print ("Number of tweets: " + str(user.statuses_count))
print ("Number of followers: " + str(user.followers_count))
print ("Number of Following: " + str(user.friends_count))
print ("A member of " + str(user.listed_count) + " lists.")
print ("Retreiving friends for", user.screen_name)
for friend in user.friends():
print ("Following_Names: " + str(friend.screen_name))
我希望将此信息存储在数据库中,以便稍后可以在本地检索它。我该怎么做呢?
您可以使用Python中已经包含的SQLite3作为可能的解决方案。
你需要做的是,不要对每个变量调用print()
,而是将其分配给一个变量,然后将该变量存储到数据库中。
例如:
print ("User id: " + user.id_str)
print ("Screen_Name: " + user.screen_name)
user_id = user.id_str
screen_same = user.screen_name
然后打开一个连接到数据库(之前或之后,只要它不连续循环),并使用:
存储这些变量:import sqlite3 as lite
import sys
con = lite.connect('twitter.db')
with con:
cur = con.cursor()
# the following line only needed once to create the table
cur.execute("CREATE TABLE Twitter(User ID, Screen Name, etc...)")
cur.execute("INSERT INTO Twitter VALUES(user_id,screen_name, etc...)")
# or
# you can insert user.id_str directly without assigning it to a variable
# cur.execute("INSERT INTO Twitter VALUES(user.id_str,user.screen_name, etc...)")
这是一个关于SQLite3的很棒的教程