Vous n'êtes pas identifié(e).
Pages : 1
Bonjour, je suis nouveau sur le forum, je viens de m'inscrire, car je ne trouve pas de solution pour importer le contenu d'un fichier .json dans ma base de données. Le but de l'opération est d'importer des points (coordonnées géospatiales) à partir de logs, les stocker dans la base pg et en suite convertir tout ça en shapefile.
J'ai bien pris connaissance de ceci
https://www.postgresql.org/docs/9.3/sta … -json.html
http://docs.postgresqlfr.org/9.6/datatype-json.html
http://www.postgresqltutorial.com/postgresql-json/
http://blog.endpoint.com/2016/02/conver … alues.html
et de plein d'autres tutos et forums mais je ne vois toujours pas comment j'indique l'emplacement de mon fichier .json à lire
Si quelqu'un sait comment faire, ça serait génial!
Merci
Hors ligne
Il manque un peu de contexte pour donner une réponse détaillée, mais vous pouvez par exemple faire :
COPY ma_table(mon_champ_json) FROM '/chemin/vers/fichier.json';
(si le fichier est sur le serveur, utilisez \copy si le fichier est disponible en local)
Julien.
https://rjuju.github.io/
Hors ligne
MERCI BEAUCOUP! Je vais enfin pouvoir avancer
Hors ligne
Bon voilà, j'essayé d'extraire les coordonnées ci-dessous. J'ai importé tout le fichier json avec
create table field(data json);
COPY field(data) FROM '/home/guest-pc5/field.json';
Le contenu du fichier :
{"vertices":[{"lat":46.744628268759314,"lon":6.569952920654968},
{"lat":46.74441692818192,"lon":6.570487107359068},
{"lat":46.74426116111054,"lon":6.570355867853787},
{"lat":46.74447250168793,"lon":6.569821681149689}],
"name":"demo-field",
"cropType":"sugarbeet",
"cropPlantDistance":0.18000000715255737,
"rowDistance":0.5,
"numberOfRows":[28,12,12],
"seedingDate":"2016-08-17T07:39+00:00"}
Maintenant, je veux seulement récupérer les champs "vertices" pour les mettre dans une table que je souhaite utiliser dans geoserver.
J'ai essayé d'utiliser les fonctions de la doc mais rien à faire...
Dernière modification par chaugab (23/08/2016 14:35:33)
Hors ligne
Et ça donne quoi comme requête avec quoi comme résultat ?
Guillaume.
Hors ligne
j'ai trouvé comment selectionner mon tableau!
SELECT json_array_elements(data->'vertices') from field;
json_array_elements
----------------------------------------------------
{"lat":46.744628268759314,"lon":6.569952920654968}
{"lat":46.74441692818192,"lon":6.570487107359068}
{"lat":46.74426116111054,"lon":6.570355867853787}
{"lat":46.74447250168793,"lon":6.569821681149689}
(4 rows)
maintenant il faut que je trouve comment je formate tout ça pour entrer les coordonnées dans la table suivante
create table geoField(id serial primary key, pointA geometry, pointB geometry, pointC geometry, pointD geometry);
si quelqu'un à une idée... je continu à chercher.
Dernière modification par chaugab (23/08/2016 15:36:50)
Hors ligne
J'essaye d'utiliser la fonction json_to_recordset mais je tombe sur une erreur.
select * from json_to_recordset('[{"lat":46.744628268759314,"lon":6.569952920654968},{"lat":46.74441692818192,"lon":6.570487107359068},{"lat":46.74426116111054,"lon":6.570355867853787},{"lat":46.74447250168793,"lon":6.569821681149689}]') as (lat numeric, lon numeric);
ERROR: function json_to_recordset(unknown) does not exist
LINE 1: select * from json_to_recordset('[{"lat":46.744628268759314,...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Hors ligne
Quelle version de PostgreSQL avez-vous ?
Guillaume.
Hors ligne
J'utilise la version 9.3.14
Hors ligne
Donc je ne vois pas pourquoi vous êtes étonné par ce message d'erreur. Il n'y a pas de fonction json_to_recordset en 9.3 comme l'indique la doc : http://docs.postgresqlfr.org/9.3/functions-json.html
Guillaume.
Hors ligne
Je n'avais pas vu, merci
Hors ligne
Bonjour,
A l'attention de chaugab. Est-ce que vous avez réussi à importer le fichier json tel quel ?
ou bien avez-vous du retirer les retours à la ligne ?
Hors ligne
Bonjour, ça fait longtemps mais je je ne pense pas avoir eu à retoucher mon fichier.
Hors ligne
Pages : 1