@NeW_CodeR
Аферюга

Как сделать, чтобы переменная, в которой текст из json файла, имела другой текст, когда json файла с таким названием не найдено?

Извиняюсь за вопрос, лучше не придумал.
В общем, создаю команду %юзер и там есть текст, который пишет человек сам о себе, через команду %осебе, ну вот свой профиль через %юзер, я чекнуть могу, а других пользователей, у который не написано ничего %осебе, а значит и не создан JSON файл, не могу (Просто ничего не пишет, даже в консоль). ВОТ КОД:
@client.command(name="юзер")
async def __info(ctx,member:discord.Member = None):
    if member == None:
        member = ctx.author
    useeer = member.id
    with open(f"finite/osebe/{useeer}.json", "r") as f: #Открываем файл
        jsonosebe = json.load(f) # Получаем файл (Главное чтобы файл содержал {} )
    osebe = str(jsonosebe)[11:-2]
    memberrname = member.display_name
    joined = member.joined_at.timestamp()
    created = member.created_at.timestamp()
    roletop = member.top_role
    avaurl = member.avatar_url
    lastboost = member.premium_since
    ID = member.id
    status = statuses.get(member.desktop_status)
    if lastboost == None:
        lastboost = "Никогда"
    embed = discord.Embed(description=f"Справа этого текста находится аватарка пользователя. А нажав на [этот текст]({avaurl}), вы можете открыть её по ссылке.\n\n**Основная информация**\nЗареган: <t:{int(created)}:R> (<t:{int(created)}:D>)\nАйди: {ID}\nСтатус: {status}\n\n**Серверная информация**\nПрисоиденился: <t:{int(joined)}:R> (<t:{int(joined)}:D>)\nНаивысшая роль: {roletop}\n\n**Пользователь о себе:**\n{osebe}", colour=0xece09d)
    await ctx.channel.purge(limit=0)
    embed.set_author(name=f"Информация о пользователе {memberrname}", url=member.avatar_url, icon_url=member.avatar_url)
    embed.set_thumbnail(url=member.avatar_url)
    embed.set_footer(text=f"В последний раз бустил сервер: {lastboost}", icon_url="https://www.dropbox.com/s/go17iw9bvjbwflw/nitro.png?dl=1")
    await ctx.send(embed=embed)

Как мне сделать, чтобы когда нету JSON файла, там где "{osebe}" было написано "Пользователь ничего не написал о себе. Чтобы написать что-то о себе, используй - `%осебе`"????
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DF0rig
clay
if osebe == None:
    print("Пользователь ничего не написал о себе.")


Я вам порекомендую завести 1 файл со всеми пользователями, примерно так:
{
    "user": {
        "osebe": None
    } . . .
}

Так будет удобнее для вас, и для упрощения кода. Этому можно научится узнав базу использования json. После этого вы можете проверить, имеет ли переменная osebe (в json файле) чтото, или же - None:
with open(f"finite/osebe/users.json", "r") as f: #СОЗДАЙТЕ ФАЙЛ users.json ДЛЯ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ
    jsonosebe = f.read()
data = json.loads(jsonosebe)
try:
    info_osebe = data[useeer]["osebe"]
except:
    info_osebe = "Пользователь ничего не написал о себе."
print(info_osebe)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы