Ошибка при выборе данных из MySQL
Как сделать выборку данных из MySQL?
from telethon import TelegramClient
import time
import pymysql
con = pymysql.connect('localhost', 'Admin', 'p6nO0OUp2M12123213213', 'Databse')
cur = con.cursor()
x = 2
while(True):
print("Очередь аккаунта № " + str(x))
cur.execute(f"SELECT PHONE FROM Account WHERE ID = '{x}'")
time.sleep(0.2)
Phone = str(cur.fetchall()[0])
print("Входим в аккаунт: " + Phone)
cur.execute(f"SELECT PASS FROM Account WHERE ID = '{x}'")
time.sleep(0.2)
password = str(cur.fetchall()[0])
print(password)
cur.execute(f"SELECT API_ID FROM Account WHERE ID = '{x}'")
time.sleep(0.2)
api_id = str(cur.fetchall()[0])
cur.execute(f"SELECT API_HASH FROM Account WHERE ID = '{x}'")
time.sleep(0.2)
api_hash = str(cur.fetchall()[0])
session = str("anon" + str(x))
print(Phone, " номер")
print(password, " пароль")
print(api_id, " Api id")
print(api_hash, " Хеш")
client = TelegramClient(session, api_id, api_hash)
client.start()
x = x + 1
time.sleep(1)
if x == 32:
print("Aккаунты активированы!")
break
Ошибка
Входим в аккаунт: ('15543543545',)
('ASDFGH',)
('15543543545',) номер
('ASDFGH',) пароль
('14256',) Api id
('632',) Хеш
Traceback (most recent call last):
File "create_client.py", line 31, in <module>
client = TelegramClient(session, api_id, api_hash)
File "/usr/local/lib/python3.8/site-packages/telethon/client/telegrambaseclient.py", line 286, in __init__
self.api_id = int(api_id)
ValueError: invalid literal for int() with base 10: "('14256',)"
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
Ну вот что-то такое у меня получилось из Вашего кода. Я бы конечно убрал все рюшки ввиде вывода вообще, но тут хозяин - барин
from telethon import TelegramClient
import time
import pymysql
con = pymysql.connect('localhost', 'Admin', 'p6nO0OUp2M12123213213', 'Databse')
cur = con.cursor()
x = 2
cur.execute(f"SELECT COUNT(ID) FROM Account")
accounts_qty, *_ = cur.fetchone()
while x < accounts_qty + 1:
print(f"Очередь аккаунта № {x}")
cur.execute(f"SELECT PHONE,PASS, API_ID, API_ID FROM Account WHERE ID = '{x}'")
Phone, password, api_id, api_hash = cur.fetchone()
print(f"Входим в аккаунт: {Phone}")
time.sleep(1)
session = str(f"anon{x}")
print(f"{Phone} номер")
print(f"{password} пароль")
print(f"{api_id} Api id")
print(f"{api_hash} Хеш")
client = TelegramClient(session, api_id, api_hash)
client.start()
x += 1
time.sleep(1)
else:
print("Aккаунты активированы!")
UPD Небольшая фантазия "на тему":
from telethon import TelegramClient
import time
import pymysql
con = pymysql.connect('localhost', 'Admin', 'p6nO0OUp2M12123213213', 'Databse')
cur = con.cursor()
cur.execute(f"SELECT ID, PHONE, PASS, API_ID, API_ID FROM Account;")
accounts = cur.fetchall()
activated_accounts = []
fail_activation = dict()
for account in accounts:
id_, phone, password, api_id, api_hash = account
try:
TelegramClient(f'anon{id_}', api_id, api_hash).start()
activated_accounts += [id_]
except Exception as err:
fail_activation.update(
{
id_: err
}
)
time.sleep(1)
if activated_accounts:
success_report = '\n'.join(activated_accounts)
print(f"Аккаунты\n{success_report}\nУспешно активированы!")
if fail_activation:
fail_print_str = '\n'.join(
['-'] * 30 + [
f'Аккаунт {i} не активирован. Причина: {e}' for i, e in [error for error in fail_activation.items()]
]
)
print(fail_print_str)