es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando datos almacenados en un archivo JSON en discord.py.

Estoy intentando utilizar los datos de un archivo json que contiene información almacenada por el usuario. Pero cuando imprimo desde él, muestra toda la información almacenada en él. ¿Cómo puedo extraer solo una parte? Aquí está el código:

@client.command(aliases = ["shib, shibaku, Shib"])
async def Shibaku(ctx, int = 0):

if int == 1:
    with open('Shibaku1.json') as f:
      coins_data = json.load(f)
      for oslink in coins_data[str(ctx.author.id)]:
        await ctx.send(oslink)

Aquí está el código para almacenar información en “Shibaku1.json”

@client.command()
async def shibaku1(ctx, coin1, coin2, coin3, coin4, coin5, coin6, shibakunumber, oslink):
  await ctx.message.delete()

with open('Shibaku10.json', 'r') as f:
    coins_data = json.load(f)
  coins_data[str(ctx.author.id)] = (coin1, coin2, coin3, coin4, coin5, coin6, shibakunumber, oslink)
  with open('Shibaku10.json', 'w') as f:
    json.dump(coins_data, f)

Archivo json de ejemplo:

{“331971067788787733”: [“😄”, “😆”, “😀”, “😁”, “😅”, “🤏”, “1”, “1”]}
Quiero mostrar solo la parte de “oslink”.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para extraer solo la parte “oslink” del archivo JSON, puedes modificar el código en la función Shibaku de la siguiente manera:

    @client.command(aliases=["shib", "shibaku", "Shib"])
    async def Shibaku(ctx, int=0):
    
      if int == 1:
        with open('Shibaku1.json') as f:
          coins_data = json.load(f)
          oslink = coins_data[str(ctx.author.id)][-1] # obtiene el último elemento de la lista
          await ctx.send(oslink)
    

    Este código recupera el último elemento de la lista que corresponde a la ID del usuario en el archivo JSON, que debería ser el valor de “oslink”. La línea await ctx.send(oslink) luego envía solo ese valor como un mensaje.

Comments are closed.