Кривое сравнение значений JSON хранилища, почему?

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

bot = commands.Bot(command_prefix='7')
os.chdir(r'D:\Sublime Text 3\dis\test_systems\json_files')

@bot.command()
async def Test(message):
    with open('parametr.json', 'r') as f:
        users = json.load(f)

    await update_data(users, message.author)
    await add_Z(users, message.author, 10000)
    await X(users, message.author)
    await sendd(message)

    with open('parametr.json','w') as f:
        json.dump(users, f)

async def update_data(users, user):
    if not str(user.id) in users:
        users[str(user.id)] = {}
        users[str(user.id)]['Z'] = 0
        users[str(user.id)]['X'] = 15000

async def add_Z(users, user, parametr):
    users[str(user.id)]['Z'] += parametr

async def X(users, user):
    users[str(user.id)]['X'] == 15000

async def sendd(message):
    await message.channel.send(f'Успешно!')

    with open('parametr.json', 'r') as f:
        users = json.load(f)

    if 'Z' > 'X':
        await message.channel.send('да')
    else:
        await message.channel.send('Нет')

Сам код работает идеально, все значения в хранилище добавляет и всё делает как и должно. Но сравнение выдаёт только одно значение, то что Z больше X, хотя в хранилище наоборот.

X всегда остаётся 15000, тут ошибок нет.

{"293396418834464768": {"Z": 10000, "X": 15000}}

Почему возникает ошибка?


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

Автор решения: CrazyElf
if 'Z' > 'X':
    await message.channel.send('да')
else:
    await message.channel.send('Нет')

Мне кажется тут у вас ошибка. Вы сравниваете константные строки. Тут всегда будет True, потому что как код символа Z конечно же больше кода символа X.

Наверное, вы тут хотели сравнить что-то другое, а не просто символы 'Z' и 'X'. Например:

if users[str(user.id)]['Z'] > users[str(user.id)]['X']:

Только надо достать ещё из message как-то user.id, а я в discord не силён, возможно это будет message.author.id:

if users[str(message.author.id)]['Z'] > users[str(message.author.id)]['X']:
→ Ссылка