Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
-7 / 0 / 0
Регистрация: 03.06.2020
Сообщений: 21

Вывод рандомной записи из базы данных

22.01.2025, 00:36. Показов 1997. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
conn = sqlite3.connect('image_bd')
cursor = conn.cursor()
cursor.execute("SELECT * FROM imag ")
imag = cursor.fetchall()
for i in imag:
    imag_str=i[0]
 
conn.close()
есть база 'image_bd' в ней id_photo нужно из этой базы выдать рандомное id_photo в чат с пользователем Телеграм Бота

мой код выводит всегда одно фото (первое )


Python
1
2
3
4
5
conn = sqlite3.connect('image_bd')
cursor = conn.cursor()
cursor.execute("SELECT * FROM imag ")
images = cursor.fetchall()
imag_str=random.choice(images,)
если вот так то ошибка AttributeError: 'tuple' object has no attribute 'translate'

обясните пожалуйста кто нибудь что я делаю не так
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2025, 00:36
Ответы с готовыми решениями:

Вывод текущей записи из базы данных
Уважаемые форумчане нуждаюсь в вашей помощи. Имеется бд в mdb к ней осуществляется доступ через ado (adoconnection,adoquery,datasource) в...

Базы данных. Поиск и вывод информации из базы.
Вопрос к уважаемым знатокам в работе в ИСР Delphi. Имеется простая база данных(поле1-название\поле2-параметр), созданная в MS Access...

Реализовать операции записи в базу данных и чтения из базы данных асинхронными методами
У кого есть проекты с реализованными функциями???

9
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
22.01.2025, 13:57
Цитата Сообщение от Iivanov Посмотреть сообщение
обясните пожалуйста кто нибудь что я делаю не так
так ты сначала результат в список преврати, потом уже получай из списка random.choice

кроме того тебе не * нужна а наверное только id при селекте?
0
-7 / 0 / 0
Регистрация: 03.06.2020
Сообщений: 21
22.01.2025, 14:38  [ТС]
Если я вас понял правильно.
Python
1
2
3
4
5
6
7
conn = sqlite3.connect('image_bd')
cursor = conn.cursor()
cursor.execute("SELECT id_photo FROM imag ")
im = cursor.fetchall()
image = list(im)
imag_str = random.choice(image)
conn.close()
Выдает такую ошибку: ValueError: not enough values to unpack (expected 4, got 1)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
22.01.2025, 14:44
Цитата Сообщение от Iivanov Посмотреть сообщение
im = cursor.fetchall()
Python
1
im = [row[0] for row in cursor.fetchall()]
0
-7 / 0 / 0
Регистрация: 03.06.2020
Сообщений: 21
22.01.2025, 15:03  [ТС]
Заменил строчку на вашу строчку
Выводит всегда первое
даже если удалить random (хотя по идеи должен выслать весь список)


в базе есть 3 разных id для теста.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
22.01.2025, 15:15
Лучший ответ Сообщение было отмечено Iivanov как решение

Решение

Iivanov, не верю!

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Python 3.12.2 >>> import sqlite3
Python 3.12.2 >>> conn = sqlite3.connect(':memory:')
Python 3.12.2 >>> cursor = conn.cursor()
Python 3.12.2 >>> cursor.execute("create TABLE image(id, size)")
<sqlite3.Cursor object at 0x00000210BC007D40>
Python 3.12.2 >>> conn.commit()
Python 3.12.2 >>> cursor.execute("insert into image values (121, 1000)")
<sqlite3.Cursor object at 0x00000210BC007D40>
Python 3.12.2 >>> cursor.execute("insert into image values (152, 1100)")
<sqlite3.Cursor object at 0x00000210BC007D40>
Python 3.12.2 >>> cursor.execute("insert into image values (187, 1200)")
<sqlite3.Cursor object at 0x00000210BC007D40>
Python 3.12.2 >>> conn.commit()
Python 3.12.2 >>> from random import choice
Python 3.12.2 >>> cursor.execute("SELECT id FROM image")
<sqlite3.Cursor object at 0x00000210BC007D40>
Python 3.12.2 >>> im = [row[0] for row in cursor.fetchall()]
Python 3.12.2 >>> im
[121, 152, 187]
Python 3.12.2 >>> choice(im)
187
Python 3.12.2 >>> choice(im)
121
Python 3.12.2 >>> choice(im)
187
Python 3.12.2 >>> choice(im)
187
Python 3.12.2 >>> choice(im)
187
Python 3.12.2 >>> choice(im)
187
Python 3.12.2 >>> choice(im)
121
Python 3.12.2 >>> choice(im)
152
Python 3.12.2 >>> choice(im)
152
0
-7 / 0 / 0
Регистрация: 03.06.2020
Сообщений: 21
22.01.2025, 15:44  [ТС]
Хорошо, спасибо вам за ваше время и знания.
Значит в моем общем коде какието проблемы .
Или с моей базой.
Буду разбираться

Добавлено через 16 минут
Да. Код работает. Проверил
Просто в моей програме он работает если каждый раз перезапускать бота.
А если много раз вызывать командой то он просто выводит одну и ту же что вывел изначально рандомно.
Но вопрос с рандомом решен.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
22.01.2025, 16:04
Цитата Сообщение от Iivanov Посмотреть сообщение
раз перезапускать бота
я советую забыть про ботов, пока основы не закрепил
0
-7 / 0 / 0
Регистрация: 03.06.2020
Сообщений: 21
22.01.2025, 17:52  [ТС]
Чем же вы посоветуете мне заниматься ?

0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
22.01.2025, 18:15
Iivanov, решением задач, что вам под силу, например в книгах часто в конце глав задачи, для закрепления освоенного. Можно тут на форуме помогать новичкам и решать их задачи.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2025, 18:15
Помогаю со студенческими работами здесь

Разработать AJAX-приложения для асинхронного записи и чтения данных в базы данных
Здравствуйте, есть php скрипт. index.php &lt;?php $tovar = new Tovar( $_REQUEST ); if (isset( $_REQUEST )) { ...

Написать функцию записи данных из массива структур в текстовый файл(из базы данных)
Всем привет. Впервые решил написать что-то на этом форуме, ибо нужна помощь. Объясните пожалуйста, как написать функцию для записи данных...

Добавление записи в базу данных и считывание из базы данных
Здравствуйте! Знаю, что эти вопросы поднимались уже тысячи раз, но помогите пожалуйста. Написала код добавления записи в БД. Сколько...

Вывод 1 случайной записи из базы SQL
&quot;You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near...

Вывод рандомной ссылки
Всем добрый вечер! Подскажите, как можно вывести рандомную ссылку на лендинге с передачей параметров? Сейчас использую: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru