我想将Python shell数据存储到数据库中



我是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的很棒的教程

相关内容

最新更新