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 collections
‘ MutableMapping/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)