Синтаксическая ошибка в Python SQLite - PullRequest
0 голосов
/ 04 августа 2011

КОД НИЖЕ ОБНОВЛЕН КОД, КОТОРЫЙ РАБОТАЕТ

Я получаю синтаксическую ошибку при попытке запустить это.Вот соответствующий код:

import sqlite3
mydatabase="/Users/noahclark/cities.db"
connection=sqlite3.connect(mydatabase)
cur = connection.cursor()

def getDaysURLS(self):
    day = cur.execute('select state from cities where city = "pointer"')
    day = cur.fetchone()[0]
    print day
    cur.execute('select URL from cities where day = ?', (str(day),))

Когда я запускаю этот код, я получаю следующую ошибку.

  Tkinter.py", line 1410, in __call__
  return self.func(*args)
  File "tkinter.py", line 50, in getDaysURLS
  cur.execute(urlstring)
  OperationalError: near "<": syntax error

Я могу запустить - выбрать штат из городов, где находится город "Указатель "- строка в командной строке sqlite, и она работает.

Есть идеи или указатели?Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 04 августа 2011

SQLite следует стандарту SQL: строки заключаются в одинарные, а не двойные кавычки. Также обычно используйте = для проверки на равенство строк.

1 голос
/ 04 августа 2011

Не используйте двойные кавычки. SQLite использует их для экранирования таких идентификаторов, как имена полей и таблиц. Вместо этого используйте одинарные кавычки. Кроме того, вы должны использовать = вместо is:

day = cur.execute("select state from cities where city = 'pointer'")

UPDATE : cur.execute() возвращает курсор cur, а не результат запроса. Вам нужно позвонить cursor.fetchone(), чтобы получить значение:

# Execute the query.  If all went well, you can use the cursor to navigate through
# the results.
cur.execute("select state from cities where city = 'pointer'")
# Fetch the next row and extract the first value in the row.
day = cur.fetchone()[0]
1 голос
/ 04 августа 2011

Только использование в sql при проверке на ноль

  day = cur.execute('select state from cities where city = "pointer"')

Или еще лучше:

  day = cur.execute('select state from cities where city = ?',("pointer",))

РЕДАКТИРОВАНИЕ

 urlstring = "select URL from cities where day is" + str(day)
 cur.execute(urlstring)
  1. Используйте?метод, который я показал ранее
  2. Вам нужен пробел после того, как
  3. cur.execute () не возвращает подобное значение.Я не уверен, что это возвращает.Вам нужно использовать метод выборки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...