Saltar al contenido

¿Cómo eliminar espacios en blanco y líneas nuevas de cada valor en un archivo JSON?

Haz todo lo posible por comprender el código correctamente previamente a adaptarlo a tu trabajo si ttienes algo que aportar puedes compartirlo con nosotros.

Solución:

Ahora quiero eliminar todos los espacios en blanco y las nuevas líneas para cada valor en el archivo JSON.

Utilizando pkgutil.simplegeneric() para crear una función auxiliar get_items():

import json
import sys
from pkgutil import simplegeneric

@simplegeneric
def get_items(obj):
    while False: # no items, a scalar object
        yield None

@get_items.register(dict)
def _(obj):
    return obj.items() # json object. Edit: iteritems() was removed in Python 3

@get_items.register(list)
def _(obj):
    return enumerate(obj) # json array

def strip_whitespace(json_data):
    for key, value in get_items(json_data):
        if hasattr(value, 'strip'): # json string
            json_data[key] = value.strip()
        else:
            strip_whitespace(value) # recursive call


data = json.load(sys.stdin) # read json data from standard input
strip_whitespace(data)
json.dump(data, sys.stdout, indent=2)

Nota: functools.singledispatch() (Python 3.4+) permitiría usar collectionsMutableMapping/MutableSequence en lugar de dict/list aquí.

Producción


  "anotherName": [
    
      "anArray": [
        
          "anotherKey": "value", 
          "key": "value"
        , 
        
          "anotherKey": "value", 
          "key": "value"
        
      ]
    
  ], 
  "name": [
    
      "someKey": "some Value"
    , 
    
      "someKey": "another value"
    
  ]

Analice el archivo usando JSON:

import json
file = file.replace('n', '')    # do your cleanup here
data = json.loads(file)

luego recorra la estructura de datos resultante.

Nos encantaría que puedieras mostrar este artículo si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *