#python #string #sqlite #tuples
#python #строка #sqlite #кортежи
Вопрос:
Когда я извлекаю данные из своей базы данных, они возвращаются в следующем формате, однако мне это нужно просто как текст сам по себе:
[(u'milk',)]
[(7,)]
я попытался преобразовать его в строку и т. Д., Чтобы я мог использовать цикл for для итерации по нему и удаления ненужных символов, но ничего не сработало
Вот мой код:
def retShopping(db):
item = []
quan = []
with sqlite3.connect(db) as db:
cursor = db.cursor()
cursor.execute('''SELECT quantity FROM Shopping''')
hold = str(cursor.fetchall())
quan.append(hold)
cursor.execute('''SELECT item FROM Shopping''')
hold2 = str(cursor.fetchall())
item.append(hold2)
print(item[0])
print(quan[0])
Я надеюсь, что смогу просто получить строки 'milk'
и '7'
использовать их в операторах печати.
Комментарии:
1. У вас есть списки кортежей значений. Прочитайте о том, как получить доступ к элементам списка и кортежа. Также 7 является целым числом, а не строкой.
2. И python3 намного красивее, чем python2.
3. Попробуйте элемент[0][0]. наличие (xxx,) означает, что это кортеж
Ответ №1:
попробуй это:
def retShopping(db):
with sqlite3.connect(db) as db:
cursor = db.cursor()
cursor.execute('''SELECT quantity FROM Shopping''')
hold = cursor.fetchall()
print(hold[0][0])
cursor.execute('''SELECT item FROM Shopping''')
hold2 = cursor.fetchall()
print(hold2[0][0])