2013-11-25 5 views
0

Я загружаю твиты из Интернета с помощью json.Хранить твиты с кавычками в базе данных SQLite3

import urllib2, json, sqlite3 
wFD = urllib2.urlopen('http://rasinsrv07.cstcis.cti.depaul.edu/CSC455/Twitter_2013_11_12.txt') 
blankLines = 0 
goodLines = 0 
numLines = 10000 
while numLines > 0: 
    line = wFD.readline() 
    numLines = numLines - 1 
    try:  
     tweets.append(json.loads(line)) 
     goodLines = goodLines+1 
    except: 
     blankLines = blankLines + 1 
blankLines 
goodLines 

я должен проверить длину всей твит, а затем сохранить его как один большой записи в таблице в базе данных с использованием SQLite3.

SingleTable = """Create table SingleTable 
      (tweet varchar(8038) 
      );""" 
c.execute("drop table if exists SingleTable")    
c.execute(SingleTable) 

len_strTwt = 0 
for tweet in tweets: 
    str_tweet = str(tweet) 
    c.execute("insert into SingleTable values (?)", (str_tweet)) 
    if len_strTwt < len(str_tweet): 
     len_strTwt = len(str_tweet) 
len_strTwt 

Когда я попытался сохранить его, я не смог это сделать из-за большого количества двойных и одинарных кавычек. Я не знаю, как использовать символ excape здесь, чтобы иметь возможность хранить его в базе данных. Любая помощь будет оценена. Благодарю.

ответ

1

Вам нужна дополнительная запятая сказать Python, что вы хотите кортеж:

c.execute("insert into SingleTable values (?)", (str_tweet,)) 

Без запятой, вы получаете обычную строку, которая будет интерпретироваться execute как последовательность символов, то есть, каждый символом будет одно значение параметра.

Обратите внимание: SQLite не проверяет длину столбцов по умолчанию.

+0

Спасибо, это сработало. –

Смежные вопросы