IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> "Tri" réponse SQL avec AppleScript
Options
BouldouZarat
posté 7 Dec 2014, 16:58
Message #1


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 7 Dec 2014
Membre no 193 243



Bonjour à tous et à toutes,

Je suis plutôt néophyte en programmation, et vraiment totalement en ce qui concerne l'Apple Script.
Voilà mon soucis : j'essaye de programmer un script pour un logiciel qui affiche des widgets sur le bureau. En l'occurence, je voudrais afficher la météo, en passant par une requête SQL sur Yahoo. Juste là, pas trop trop de soucis, il suffit de s'inspirer des codes existant et d'utiliser la fonction "cURL" qui fait tout, soit. Seulement, comme attendu, la requête est envoyée en JSON et l'output de la console me l'écrit donc telle quelle :

Code
{
"query": {
  "count": 1,
  "created": "2014-12-07T15:48:37Z",
  "lang": "fr-fr",
  "results": {
   "channel": {...
etc..
Je me retrouve donc avec ce pavé écrit directement sur le bureau. Pas hyper lisible et ça bouffe un peu de place disons..
Alors je me demandais comment je pourrais obtenir seulement quelques champs et n'afficher que ceux-ci. Ils sont déjà rangés, comme par exemple la météo en-elle même :
Code
"code": "28",
      "date": "Sun, 07 Dec 2014 4:30 pm CET",
      "temp": "50",
      "text": "Mostly Cloudy"

L'idéal serait de pouvoir ranger les données utiles (seulement celles dont j'aurais besoin) dans des variables et pouvoir demander à la console de ne ressortir que celles-ci.
Mes recherches ont été jusqu'ici peu fructueuses, mais il me semble devoir utiliser quelque chose comme "grep", pour rechercher un texte particulier, mais je vous avoue que je n'ai absolument aucune idée de comment l'utiliser, ni si ma requête est pertinente, mais je me creuse la tête depuis un petit bout de temps sans résultats. wacko.gif

Merci pour vos réponses,

BZ
Go to the top of the page
 
+Quote Post
Jaypee
posté 7 Dec 2014, 17:41
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Moi, je dirais que l'informatique c'est très bête, la requête ramène tout ce qu'on lui demande de ramener tout, donc c'est du côté de Yahoo qu'il faut creuser pour raffiner un peu la requête : Si elle commence par "select *", l'étoile veut dire "tout", il faut la remplacer par la liste des tags que tu souhaites : "select item.forecast from ..." est un bon début.

J-P

Ce message a été modifié par Jaypee - 7 Dec 2014, 17:48.
Go to the top of the page
 
+Quote Post
BouldouZarat
posté 7 Dec 2014, 17:48
Message #3


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 7 Dec 2014
Membre no 193 243



Bonjour et merci de votre réponse,

Soit, cela aide en partie, le serveur n'envoie plus que le morceau désiré, soit :
Code
{
"query": {
  "count": 1,
  "created": "2014-12-07T16:51:24Z",
  "lang": "fr-fr",
  "results": {
   "channel": {
    "item": {
     "condition": {
      "text": "Cloudy"
     }
    }

Et cela aide effectivement, mais ce que je recherche dans le fond est un moyen de ne faire apparaître que le "cloudy", dans l'output de la console, y a t-il un moyen de faire cela ?

BZ.
Go to the top of the page
 
+Quote Post
Jaypee
posté 7 Dec 2014, 21:37
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Franchement, je crois que j'ai donné suffisamment d'indices pour résoudre cet exercice.
Je ne connaissais pas YQL avant de lire ce sujet, j'ai juste bricolé un peu... Ce n'est pas difficile, 90% de la réponse sont déjà là...

J-P

Ce message a été modifié par Jaypee - 7 Dec 2014, 21:38.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 27th April 2024 - 01:46