2016-05-23 2 views
1

У меня есть этот код для сохранения данных в cvs-файле сейчас я хочу сохранить эти данные в sqlite или mysql, но он должен сохранять, как будто он сохраняет в cvs по одной записи в базе данных и еще один вопрос этот размер данных будет 30-40 МБ в день, в какой базе данных я должен использовать mysql или PostgresSql, потому что у меня есть 1GB + база данных каждый месяц. . Моя идея - создать сайт, который имеет всю статистику тенденций, и я хочу использовать его с djangoсохранить данные в sqlite от tweepy

import tweepy 
import csv #Import csv 
auth = tweepy.auth.OAuthHandler('XXXXXX', 'XXXXXXX') 
auth.set_access_token('XXX-XXX', 'XXX') 

api = tweepy.API(auth) 
# Open/Create a file to append data 
csvFile = open('result.csv', 'a') 
#Use csv Writer 
csvWriter = csv.writer(csvFile) 

for tweet in tweepy.Cursor(api.search, 
        q="google", 
        since="2016-05-22", 
        until="2016-05-23", 
        lang="en").items(): 
    #Write a row to the csv file/ I use encode utf-8 
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')]) 
    print tweet.created_at, tweet.text 
csvFile.close() 

ответ

0

sqlite3 решение:

Сначала создать БД, В этом примере я использовал twitter2.db. Базовое подключение к созданию sqlite3 и таблицы:

import sqlite3 

conn = sqlite3.connect('C:\\....\\twitter2.db') 
c = conn.cursor() 

c.execute("CREATE TABLE tweeter(text VARCHAR, created_at DATETIME") 

делает работу:

import tweepy 
import sqlite3 


conn = sqlite3.connect('C:\\....\\Desktop\\twitter2.db') 
x = conn.cursor() 
consumer_key="..." 
consumer_secret=".." 
access_token=".." 
access_token_secret=".." 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 
api = tweepy.API(auth) 

class CustomStreamListener(tweepy.StreamListener): 
    def __init__(self, api): 
     self.api = api 
     super(tweepy.StreamListener, self).__init__() 


    def on_status(self, status): 
      x.execute("""INSERT INTO tweeter (text,created_at) VALUES(?,?)""", 
      (status.text, status.created_at)) 
      conn.commit() 

    def on_error(self, status_code): 
     print >> sys.stderr, 'Encountered error with status code:', status_code 
     return True 

    def on_timeout(self): 
     print >> sys.stderr, 'Timeout...' 
     return True 


sapi = tweepy.streaming.Stream(auth, CustomStreamListener(api)) 
sapi.filter(track=['google']) 

закрывает соединение:

conn.close() 
Смежные вопросы