Первый раз, когда пользователь питона здесь, быть нежным .... ;-)питон - «ул» объект не имеет атрибута «выполнить»
Python 2.6 на OSX
Есть класс, который просто имеет некоторые упаковщики вокруг 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')
однако я получаю эту ERR или,
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, или само не правильно?
Не уверен, что то, что я делаю здесь ....
веселит
Вы можете подумайте, что забавно использовать 'curser' в качестве имени переменной, но любой, кто должен прочитать ваш код, будет проклинать ваше имя, поскольку они гасят через код, чтобы определить, является ли это опечаткой для' cursor' или нет. –
Извините, моя ошибка, я шел для курсора, но мой английский так плохо ... и это мой единственный язык (английский). Плохая форма, чтобы не знать, как правильно писать в моем возрасте. – Wizzard
Спасибо всем за отличную обратную связь, а как раз собираюсь уйти в течение 10 минут и проверит и присудит ответ, когда вернусь. Я также очень ценю обратную связь по другим разделам кода, очень полезно – Wizzard