@NeW_CodeR
Аферюга

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

В Pythone над Json я работаю очень мало, но попытаюсь объяснить, что хотел сделать.
Я хочу сделать команду осебе, чтобы оно сохраняло в Json каждого, кто использует команду, а потом выводило в профиль, но ту кучу, которую наговнокодил я, как починить не знаю. Поэтому написал сюда.
Вот собственно код, помогите, плис:
@client.command(name='осебе')
async def __osebe(ctx, *, osebe = None):
    if osebe is None:
        await ctx.send('Напиши что-то о себе - %осебе [текст]')
    else:
        with open(f'finitebot/osebe/{ctx.author.id}.json', 'w') as f:
            print("Новый JSON файл создан...")
        with open(f'finitebot/osebe/{ctx.author.id}.json', "r") as f: #Открываем файл
          data = json.load(f) # Получаем файл (Главное чтобы файл содержал {} )
        data.update({
          "osebe": arg # Дополняем файл
        })
        with open(f'finitebot/osebe/{ctx.author.id}.json', 'w') as file: # Повторно открываем файл, но для записи
            json.dump(data, file, indent=4)
  • Вопрос задан
  • 32 просмотра
Решения вопроса 1
@FeeFort
Надо учитывать, что json-файл не является базой данных, и в нем можно хранить информацию, которая не будет изменяться.

@client.command(name='осебе')
async def __osebe(ctx, *, osebe = None):
    if osebe is None:
        await ctx.send('Напиши что-то о себе - %осебе [текст]')
    else:
        with open(f'finitebot/osebe/{ctx.author.id}.json', 'w') as f:
            f.write("{}")
            print("Новый JSON файл создан...")
        with open(f'finitebot/osebe/{ctx.author.id}.json', "r") as f: #Открываем файл
            data = json.load(f) # Получаем файл (Главное чтобы файл содержал {} )
            data.update({
                "osebe": osebe # Дополняем файл
            })
        with open(f'finitebot/osebe/{ctx.author.id}.json', 'w') as file: # Повторно открываем файл, но для записи
            json.dump(data, file, indent=4)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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