\r\n, вместо \r будет снова перевод строки \n. Примечание в документации. https. Об этом явно указано в документации. Либо вам нужно настроить поддержку SSL-соединений для http.server с самоподписанными сертификатом, либо воспользоваться готовыми решениями. users как по int-ключу, так и str-ключу. Решение: перейти к одной нотации везде.import json
d = {123: 'a', '123': 'b'}
json.dumps(d) # '{"123": "a", "123": "b"}' Начало +-> Вопрос 1 +-> Вопрос 2 +-> Вопрос 3 +-> Конец
^ + ^ + ^ +
+---+ +---+ +---+Начало +-> Вопрос 1 +-> Вопрос 2 +-> Конец
+ ^
+-> Вопрос 3 +-+print("Получено медиа вложение\n Тип => " + event.attachments['attach1_type'])
event.attachments есть поле attach1, которое можно использовать в методе photos.getById:photo_id = event.attachments['attach1']
photo_info = vk_sess.photos.get_by_id(photos=photo_id)
photo_urls = {size['type']: size['url'] for size in photo_info['sizes']}Тогда по event.message_id получаете информацию с помощью метода message.getById, в котором должно быть поле attachments. Описание структуры поля https://vk.com/dev/objects/attachments_m и для photo https://vk.com/dev/objects/photo.
var_X и по значениям val_X, то создайте ещё один словарь для хранения обратного отношения val_X -> var_X.var_dict = {val: var for var, val in mydict.items()}
...
var_dict['val_0'] # returns var_0mydict # словарь из файла `файл.txt`
stringList # "другой" словарь
dict_for_keyboard = {key: stringList[key] for key in mydict.values()}
...
myMarkup = types.InlineKeyboardMarkup() # опечатка prMarkup?
for key, value in dict_for_keyboard.items():
myMarkup.add(types.InlineKeyboardButton(text=value + VAR ,callback_data=key )) pool.apply_async. Это плохая практика, потому что при выполнении кода в дочерних процессах могут быть исключения, которые стоит обрабатывать в основном процессе. Почитайте дополнительно документацию. Пример:import multiprocessing
def f():
raise ValueError()
with multiprocessing.Pool() as pool:
for _ in range(10):
pool.apply_async(f) # no errors
with multiprocessing.Pool() as pool:
for _ in range(10):
result = pool.apply_async(f)
result.get(timeout=1) # raise ValueErrorMongoClient или запросы .insert_one|.find_and_modify бросает исключение, связанное с превышением какого-то таймаута (посмотрите необязательные аргументы mongo_client и исключения) from tqdm import tqdm
...
for div in tqdm(divs):
# обработкаfrom tqdm import tqdm
base_urls = [...]
for base_url in tqdm(base_urls):
hh_parse(base_url, headers) bytes и перекодировать в Unicode. Предполагаю, что у вас строки в кодировке Windows-1252. Другие кодировкиdef __get_string(self, data):
...
return s.encode('cp1252').decode(), data[i + 1:] asyncio.open_connection порождает вызов socket.getaddrinfo в loop._default_executor, который в 3.7 по-умолчанию является ThreadPoolExecutor. Максимальное число воркеров в пуле по-умолчанию определяется max_workers = (os.cpu_count() or 1) * 5 (ссылка). min(32, (os.cpu_count() or 1) + 4), коммит.import concurrent.futures
...
loop = asyncio.get_event_loop()
loop.set_default_executor(concurrent.futures.ThreadPoolExecutor(max_workers=4))
...