преобразование в строку из кортежа sqlite

#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])