2013-11-25 44 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 

當我試圖存儲它時,我無法做到這一點,因爲有這麼多的雙引號和單引號。我不知道如何使用這裏的退出符號來將它存儲在數據庫中。任何幫助將不勝感激。謝謝。

回答

1

你需要一個額外的逗號來告訴Python你想要一個元組:

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

沒有逗號,你會得到一個簡單的字符串,這將是execute被解釋爲一個字符序列,即每個字符將是一個參數值。

請注意,SQLite默認情況下不會檢查列的長度。

+0

謝謝,它的工作。 –

相關問題