python - 'str' 对象没有属性 'execute'

标签 python sqlite

这里是 python 用户,请保持温柔......;-)

OSX 上的 Python 2.6

得到了一个类,它只是对 sqlite 进行了一些包装...在这里

from pysqlite2 import dbapi2 as sqlite

class SqliteDB:
    connection = ''
    curser = ''

    def connect(self):
        try:
            self.connection = sqlite.connect("pagespeed.sqlite")
            self.curser = self.connection.cursor()
         except sqlite.Error, e:
            print "Ooops: ", e.args[0]

    def find_or_create(self, table, column, value):
        self.curser.execute("SELECT id FROM ? WHERE ?=? LIMIT 1", (table, column, value))
        records = self.curser.fetchall()
        if records.count() == false:
            self.curser.execute("INSERT into ? SET ?=?", (table, column, value))
            self.curser.execute("SELECT id FROM ? WHERE ?=? LIMIT 1", (table, column, value))
        print records

我在一个单独的文件中这样调用它

import sqlitedb

def main():
    db = sqlitedb.SqliteDB()
    db.connect    
    url_id = db.find_or_create('urls', 'url', 'http://www.example.com')

但是我得到这个错误,

Traceback (most recent call last):

  File "update_urls.py", line 17, in <module>

  main()

  File "update_urls.py", line 11, in main

  url_id = db.find_or_create('urls', 'url', 'http://www.example.com')

  File "....../sqlitedb.py", line 16, in find_or_create

  self.curser.execute("SELECT id FROM ? WHERE ?=? LIMIT 1", (table, column, value))

AttributeError: 'str' object has no attribute 'execute'

所以这几乎就像 self.curser 没有得到一个 curser,或者 self 不正确?

不确定我正在做的是否就在这里....

干杯

最佳答案

我不知道哪里出了问题,但至少:

db.connect  

应该是

db.connect()

例如调用函数。

好的。 S.Lott 有答案,我刚刚发现了另一个错误 :)

关于python - 'str' 对象没有属性 'execute',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4006257/

相关文章:

python - 如何实时更新 NetworkX 图?

python - 根据 pandas DataFrame 中其他列的值将 NaN 值更改为 0

ruby - SQLite声称插入时有重复的行,但找不到

sqlite - 如何在不编写单独的 .txt 文件的情况下传递多个 SQLite3 指令?

.net - 如何连接到内存中的共享缓存数据库?

ruby-on-rails - Rails 3/Heroku - 推送到 Heroku 时重置数据库时出错 - 'type modifier is not allowed for type "文本"'

python - 保留列表中的确切单词并删除其他单词

Python-LDAP simple_bind_s 超时

python - 如何在 Python 中使用 OpenCV 概括轮廓手写字符?

android - 使用 LIKE 的查询不适用于 GreenDAO