PostgreSQL - Llenar tabla con datos de un archivo .json

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 2 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Llenar tabla con datos de un archivo .json

Publicado por Hibiki (2 intervenciones) el 21/10/2020 17:50:53
Hola, Buenos dias. Quisiera que me ayudaran en como llenar una tabla de la db con los datos de un archivo .json. tengo en la db una tabla

1
2
3
4
5
6
paises(
    id serial NOT NULL,
    pais character varying(255) NOT NULL,
    descripcion text,
    CONSTRAINT datos_pkey PRIMARY KEY (id)
)

y tengo un archivo paises.json con datos como estos:

1
2
3
4
5
6
7
8
9
10
{
 id: 1,
 pais: 'Cuba',
 descripcion: 'Archipielago del Caribe'
},
{
 id: 1,
 pais: 'Japón',
 descripcion: 'Asia Oriental'
},....

como puedo llenar mi tabla con los datos del archivo .json?

Gracias por atención...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Llenar tabla con datos de un archivo .json

Publicado por Francisco (110 intervenciones) el 22/10/2020 01:37:25
Hola

PostgreSQL es muy potente manejando JSON, estoy asumiendo que tus datos vienen en un array JSON

De esta manera lo puedes hacer

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
DROP TABLE IF EXISTS paises;
CREATE TABLE paises(
    id serial NOT NULL,
    pais character varying(255) NOT NULL,
    descripcion text,
    CONSTRAINT datos_pkey PRIMARY KEY (id)
);
 
INSERT INTO paises(pais, descripcion)
SELECT
-- (t->>'id')::integer id, --
t->>'pais' pais,
t->>'descripcion' descripcion
FROM jsonb_array_elements('[
  {
    "id": 1,
    "pais": "Cuba",
    "descripcion": "Archipielago del Caribe"
  },
  {
    "id": 1,
    "pais": "Japón",
    "descripcion": "Asia Oriental"
  }
]'
) t;
 
SELECT * FROM paises;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Llenar tabla con datos de un archivo .json

Publicado por Francisco (110 intervenciones) el 22/10/2020 02:00:54
Otra forma de hacerlo es si estas pasando solo objetos JSON

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
DROP TABLE IF EXISTS paises;
CREATE TABLE paises(
    id serial NOT NULL,
    pais character varying(255) NOT NULL,
    descripcion text,
    CONSTRAINT datos_pkey PRIMARY KEY (id)
);
 
INSERT INTO paises(pais, descripcion)
SELECT
-- value->>'id' id, --
value->>'pais' pais,
value->>'descripcion' descripcion
FROM jsonb_each('
{
  "1": {
    "id": 1,
    "pais": "Cuba",
    "descripcion": "Archipielago del Caribe"
  },
  "2": {
    "id": 1,
    "pais": "Japón",
    "descripcion": "Asia Oriental"
  }
}
'
) t;
 
SELECT * FROM paises;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Llenar tabla con datos de un archivo .json

Publicado por hibiki (2 intervenciones) el 23/10/2020 04:26:18
Ah, que bien eso, pero no es un array lo que tengo, sino un archivo paises.json, y quisiera ver como puedo leer el archivo y verterlo en la tabla, el archivo es externo a la bd, es uno que encontre con los paises y no quiero escribirlos para introducirlos, sino que quiero llenar la tabla con los datos que contiene el archivo...


Gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar