我正在使用json从网上加载推文。
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符号将其存储在数据库中。任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
你需要一个额外的逗号告诉Python你想要一个元组:
c.execute("insert into SingleTable values (?)", (str_tweet,))
如果没有逗号,您将得到一个普通字符串,它将被execute
解释为一系列字符,即每个字符将是一个参数值。
请注意,默认情况下,SQLite不会检查列的长度。