Парсер не записывает данные в json

Почему-то парсер не записывает данные в json, что не так?

import discord
from discord.ext import commands
import json
import os

# Токен бота
TOKEN = ' '

# ID канала, в котором бот будет парсить сообщения
CHANNEL_ID = 123456789012345678  # Замените на ID нужного канала

# Имя файла JSON
JSON_FILE = 'message_ids.json'

# ID роли, которую нужно выдавать
ROLE_ID = 987654321012345678  # Замените на ID нужной роли

# Создание бота
bot = commands.Bot(command_prefix='!', intents=discord.Intents.default())

# Глобальный список для хранения ID
message_ids = []

# Загрузка данных из JSON (если файл существует)
if os.path.exists(JSON_FILE):
    with open(JSON_FILE, 'r') as f:
        message_ids = json.load(f)

# Создание таблицы в базе данных (если она не существует)
@bot.event
async def on_ready():
    print(f'Бот запущен как {bot.user}')

    # Проверка участников при запуске бота
    await check_members(bot)

# Обработка сообщений
@bot.event
async def on_message(message):
    if message.channel.id == CHANNEL_ID and message.author.bot is False:
        # Проверка, является ли сообщение нужного типа
        if message.content.startswith('№'):
            # Получение ID из сообщения
            new_message_ids = message.content.split('n')[1:]

            # Добавление новых ID в глобальный список, избегая дубликатов
            for new_id in new_message_ids:
                try:
                    new_id = int(new_id)
                    if new_id not in message_ids:
                        message_ids.append(new_id)
                except ValueError:
                    await message.channel.send(f'Неверный формат ID: {new_id}')

            # Запись обновленного списка в файл JSON
            try:
                with open(JSON_FILE, 'w') as f:
                    json.dump(message_ids, f)
            except json.JSONDecodeError as e:
                await message.channel.send(f"Ошибка при записи в файл: {e}")
            except Exception as e:
                await message.channel.send(f"Ошибка: {e}")

            # Отправка подтверждения в нескольких сообщениях
            confirmation_message = "ID успешно добавлены в файл."
            max_length = 2000  # Максимальная длина сообщения в Discord
            parts = [confirmation_message[i:i + max_length] for i in range(0, len(confirmation_message), max_length)]
            for part in parts:
                await message.channel.send(part)

# Функция для проверки участников
async def check_members(bot):
    for guild in bot.guilds:
        for member in guild.members:
            if member.id in message_ids:
                role = guild.get_role(ROLE_ID)
                if role is not None:
                    await member.add_roles(role)
                    await member.send(f'Вам была выдана роль {role.name}.')

# Запуск бота
bot.run(TOKEN)```

Ответы (1 шт):

Автор решения: Unclear

У вас в коде строка new_message_ids = message.content.split('n')[1:] выдаёт пустой список, как я понимаю, он должен содержать ID которые должны добавляться в json файл. Вместо этой строки я написал new_message_ids = message.content.split('№')[1:]

Результат замены строки кода

→ Ссылка