Если сильно хочется в одном файле запускать сразу для нескольких групп бота, то вам потоки нужны, примерно так:
from threading import Thread
def bot(longpoll, vk_api):
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
message = 'Hello, World'
vk_api.messages.send(user_id=event.object.from_id, random_id=random.getrandbits(32), message=message)
def bot_init(account):
vk = vk_api.VkApi(token=account['token'])
vk_api = vk.get_api()
longpoll = VkBotLongPoll(vk, account['group_id'])
bot(longpoll, vk_api)
def main():
with open('accounts.json', 'r') as file:
data = json.loads(file.read())
accounts = data['accounts']
for account in accounts:
Thread(target=bot_init, args=[account]).start()
if __name__ == '__main__':
main()
Я это не тестировал, просто как пример.