我有一个脚本可以挖掘tweets并将它们输入我的postgres数据库。它适用于大多数消息
我可以通过以下行返回消息的文本:
tweet.text.encode('utf-8')
每当tweet在文本中有一个'时,我的脚本就会停止。我可以做一个函数来提取tweet,并将其放在两个范围内”。但是我想当一条tweet包含一个“,”时,我也会遇到同样的问题。然后我可以创建一个函数,检查tweet上包含“or”的语句,并捕获这些语句。但对于这个简单的问题来说,似乎还有很多工作要做。你知道吗
所以我想知道如何克服这个问题,而不需要太多的脚本工作。你知道吗
我不是python方面的专家,我的问题之一是我试图以一种困难的方式解决问题,而通常有一种更简单的方法。当前的问题让我觉得这是一个这样的场景。因此,我的问题是。你知道吗
***更新
我的错误弹出时,插入到我的postgres表的消息确实。你知道吗
我刚刚尝试了repr(),但仍然收到类似的错误消息。你知道吗
Traceback (most recent call last):
File "...python.py", line 28, in <module>
cur.execute("INSERT INTO Test(userid, created, retweets, message) VALUES('{0}', '{1}', '{2}', '{3}')".format(tweet.user.id, tweet.created_at, tweet.retweet_count, ber))
psycopg2.ProgrammingError: syntax error at or near "E19"
LINE 1: ...LUES('1251822199', '2016-02-27 10:23:40', '0', 'b'E19 (A1) M...
第四个参数是tweet的文本,以'b'E19开始作为文本。它在这里失败了。你知道吗
我用于将数据输入postgres的行如下所示:
cur.execute("INSERT INTO Test(message) VALUES('{0}')".format(repr(tweet.text.encode('utf-8'))))
因为您是使用字符串操作手动创建查询,所以需要对查询中的引号进行转义。你知道吗
但是更好的方法是使用参数化查询并允许
psycopg2
执行特殊字符的转义。如果某些参数来自不受信任的源(例如用户),这也会使代码不易受到SQL注入攻击。你知道吗或者
现在DB层将为您执行转义。你知道吗
相关问题 更多 >
编程相关推荐