繁体   English   中英

将带引号的推文存储在SQLite3数据库中

[英]Store tweets with quotes in a SQLite3 database

我正在使用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

当我尝试存储它时,由于有太多的双引号和单引号,所以无法执行它。 我不知道如何在这里使用exape符号将其存储在数据库中。 任何帮助将不胜感激。 谢谢。

您需要附加一个逗号来告诉Python您想要一个元组:

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

如果没有逗号,则会得到一个纯字符串,该字符串将由execute解释为一系列字符,即每个字符将是一个参数值。

请注意,默认情况下,SQLite不会检查列的长度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM