Código de Python - Convertir un JSON a CSV

Imágen de perfil
Val: 656
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Convertir un JSON a CSVgráfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 23 de Julio del 2019 por Xavi
1.138 visualizaciones desde el 23 de Julio del 2019
Este código muestra como convertir un simple json a un archivo CSV

Requerimientos

python 3

Versión 1.0
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 23 de Julio del 2019gráfica de visualizaciones de la versión: Versión 1.0
1.139 visualizaciones desde el 23 de Julio del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

De este json:
1
2
3
4
5
6
7
[{"ref":"mA", "precio":"10", "codigo":"001"},
{"ref":"mB", "precio":"1", "codigo":"002"},
{"ref":"mC", "precio":"13", "codigo":"003"},
{"ref":"mD", "precio":"8", "codigo":"004"},
{"ref":"mE", "precio":"7", "codigo":"005"},
{"ref":"mF", "precio":"15", "codigo":"006"},
{"ref":"mG", "precio":"18", "codigo":"007"}]

crear este archivo CSV:
1
2
3
4
5
6
7
8
ref;precio;codigo
mA;10;001
mB;1;002
mC;13;003
mD;8;004
mE;7;005
mF;15;006
mG;18;007
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import json
 
myJson="""[{"ref":"mA", "precio":"10", "codigo":"001"},
    {"ref":"mB", "precio":"1", "codigo":"002"},
    {"ref":"mC", "precio":"13", "codigo":"003"},
    {"ref":"mD", "precio":"8", "codigo":"004"},
    {"ref":"mE", "precio":"7", "codigo":"005"},
    {"ref":"mF", "precio":"15", "codigo":"006"},
    {"ref":"mG", "precio":"18", "codigo":"007"}]"""
 
"""
Si el json se encuentra en un archivo externo, lo cargariamos así:

with open('miArchivo.json', 'r') as json_file:
    data=json.load(json_file)
"""
 
# cargamos la cadena json en un objeto
data=json.loads(myJson)
 
def readJson(myList):
    """
    Funcion que lee los valores del json.
    
    Parameters:
        mylist object
    Return:
        list
    """
    # header es una lista que contendra la cabecera del archivo csv
    header=[]
    # line es una lista de listas que contendra todas las lineas
    line=[]
    for el in myList:
        line.append([])
        for k,v in el.items():
            line[len(line)-1].append(v)
            if len(header)<len(line[0]):
                header.append(k)
    return [header]+line
 
def saveToCSV(myFile, myList, delimiter=";"):
    """
    Funcion que guarda la lista en el archivo.
    
    Parameters:
        myFile string - nombre del archivo donde guardar el CSV
        myList list - lista de listas con todas las lineas a guardar en el archivo CSV
        delimiter string - delimitador a utilizar entre los valores del archivo CSV
    """
    with open(myFile,"w") as f:
        for el in myList:
            f.write(delimiter.join(el)+"\n")
 
result=readJson(data)
saveToCSV("x.csv",result)



Comentarios sobre la versión: Versión 1.0 (1)

Geova
23 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
#comentario Amigo tu código no funciono pero le hice unos pequeños cambios y ahí si funciono según yo, gracias por el código.



import json

myJson="""[{"ref":"mA", "precio":"10", "codigo":"001"},
{"ref":"mB", "precio":"1", "codigo":"002"},
{"ref":"mC", "precio":"13", "codigo":"003"},
{"ref":"mD", "precio":"8", "codigo":"004"},
{"ref":"mE", "precio":"7", "codigo":"005"},
{"ref":"mF", "precio":"15", "codigo":"006"},
{"ref":"mG", "precio":"18", "codigo":"007"}]"""

"""
Si el json se encuentra en un archivo externo, lo cargariamos así:

with open('miArchivo.json', 'r') as json_file:
data=json.load(json_file)
"""

# cargamos la cadena json en un objeto
data=json.loads(myJson)

def readJson(myList):
"""
Funcion que lee los valores del json.

Parameters:
mylist object
Return:
list
"""
# header es una lista que contendra la cabecera del archivo csv
header=[]
# line es una lista de listas que contendra todas las lineas
line=[]
for i in myList:
line.append([])
for k,v in i.items():
line[len(line)-1].append(v)
if len(header)<len(line[0]):
header.append(k)
return [header]+line

def saveToCSV(myFile, myList, delimiter=";"):
"""
Funcion que guarda la lista en el archivo.

Parameters:
myFile string - nombre del archivo donde guardar el CSV
myList list - lista de listas con todas las lineas a guardar en el archivo CSV
delimiter string - delimitador a utilizar entre los valores del archivo CSV
"""
with open(myFile,"w") as f:
for i in myList:
f.write(delimiter.join(i)+"\n")

result=readJson(data)
saveToCSV("x.csv",result)
Responder

Comentar la versión: Versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5435