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.

¿Cómo editar archivos JSON por lotes?

Entonces tengo una colección de NFT que he creado, que contiene 2 diseños diferentes en la misma colección.
Así que me gustaría fusionarlos, pero sus archivos JSON están colisionando.
Lo que estoy buscando es:
– Aumentar un número específico en una cadena específica.
– Eliminar una línea completamente de todos ellos.

Se ve así:

{
  "dna": "xxxxxxxxxxxxxxxxxxxx",
  "name": "XXXXX XXXXX #0", ##Me gustaría cambiar este valor numérico. Me gustaría agregar 3000 encima de cada otro valor.
  "description": "xxxxxxxxxxxxxxxxxxxxxxxxxxx.",
  "image": "REEMPLAZAR-ESTO-CON-TU-URL/0.png", #¿Cómo reemplazar en lote?
  "date": 1641544983764,
  "attributes": [
    {
      "trait_type": "xxxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    },
    {
      "trait_type": "xxx",
      "value": "xxx"
    }
  ],
  "compiler": "xxxxxx" ##Eliminar esta línea de todos
}

Entonces hay 10.000 de estos archivos, es algo imposible para mí editarlo manualmente.
¿Alguna sugerencia?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en JSON y procesamiento por lotes, recomendaría utilizar un script o programa para automatizar los cambios que deseas realizar en los archivos JSON. Aquí hay algunos pasos que podrías seguir:

    1. Escribe un script que recorra todos los archivos JSON en tu carpeta de colección.
    2. Dentro del bucle, utiliza un analizador JSON para leer el contenido de cada archivo en un objeto JSON.
    3. Encuentra el campo “nombre” del objeto JSON y extrae el último carácter (o caracteres) que representen el número que deseas cambiar.
    4. Convierte este número en un entero, suma 3000 y conviértelo nuevamente en una cadena de caracteres.
    5. Concatena la nueva cadena de caracteres del número con el resto de la cadena del “nombre” y reemplaza el valor antiguo en el objeto JSON.
    6. Encuentra el campo “compilador” del objeto JSON y elimínalo.
    7. Escribe el objeto JSON modificado de nuevo en el archivo original.

    Aquí tienes un ejemplo de un script en Python que podría lograr esto:

    import json
    import os
    
    carpeta_coleccion = "ruta/a/la/carpeta/de/colección"
    
    def modificar_archivo_json(ruta_archivo):
        with open(ruta_archivo, "r") as f:
            datos_json = json.load(f)
    
            # Incrementa el número en el campo "nombre" en 3000
            numero_antiguo = int(datos_json["nombre"][-1])
            numero_nuevo = str(numero_antiguo + 3000)
            datos_json["nombre"] = datos_json["nombre"][:-1] + numero_nuevo
    
            # Elimina el campo "compilador"
            del datos_json["compilador"]
    
        with open(ruta_archivo, "w") as f:
            json.dump(datos_json, f, indent=2)
    
    # Recorre todos los archivos JSON en la carpeta de colección
    for nombre_archivo in os.listdir(carpeta_coleccion):
        if nombre_archivo.endswith(".json"):
            ruta_archivo = os.path.join(carpeta_coleccion, nombre_archivo)
            modificar_archivo_json(ruta_archivo)
    

    Podrías ejecutar este script en tu carpeta de colección para modificar automáticamente todos los archivos JSON al mismo tiempo. Ten en cuenta que es posible que necesites ajustar la ruta del archivo y los nombres de los campos JSON para que coincidan con tu colección específica.

Comments are closed.