Eviter les quotes quand j'insère du texte dans un tableau

Eviter les quotes quand j'insère du texte dans un tableau - Python - Programmation

Marsh Posté le 14-04-2016 à 19:43:41    

Bonjour à tous,
 
J'ai un problème, je n'arrive pas à générer des données JSON (en me basant sur des données déjà en JSON) sans avoir de " quand j'insère du texte. J'ai vraiment besoin d'une explication, si une bonne âme passe par là :)
 
J'essaye d'utiliser Highcharts pour générer des courbes sur une page Web. Cette courbe-là, pour ceux que ça intéresse : http://www.highcharts.com/demo/line-time-series.
Pour générer la courbe, Highcharts demande à recevoir les données au format JSON sous cette forme :
 

Code :
  1. [
  2.     [
  3.         Date.UTC(2016,4,12,0,0,0),
  4.         1.2523813247680664
  5.     ],
  6.     [
  7.         Date.UTC(2016,4,12,1,0,0),
  8.         1.149500846862793
  9.     ],
  10.     [
  11.         Date.UTC(2016,4,12,2,0,0),
  12.         1.2079591751098633
  13.     ]
  14. ]


 
J'ai donc écrit un bout de code en Python qui génère un tableau contenant lui même des tableaux contenant chacun 1 couple Date / donnée (et que je lancerai en crontab régulièrement) :
 

Code :
  1. while i < 24:
  2.   #year, month et day sont récupérés dans la boucle, je n'ai pas de soucis sur cette partie là
  3.   hour = i
  4.   date = "Date.UTC("+str(year)+","+str(month)+","+str(day)+","+str(hour)+",0,0)"
  5.   data = ((vnstat_json['interfaces'][0]['traffic']['hours'][i]['tx'])/1024)/1024
  6.   array = [date, data]
  7.   highcharts_json.append(array)
  8.   i += 1


 
J'écris ensuite le résultat dans un fichier, qui sera fourni à Highcharts (dans le code d'une page web) pour créer le graphique :
 

Code :
  1. json_file = open("/srv/http/json_test.json", "w" )
  2. json_file.write(json.dumps(highcharts_json, indent = 4))
  3. json_file.close()


 
Le problème c'est que dans le fichier, j'ai des " encadrant chaque date :
 

Code :
  1. [
  2.     [
  3.         "Date.UTC(2016,4,12,0,0,0)",
  4.         1.2523813247680664
  5.     ]
  6. ]


 
Comment puis-je faire pour éviter ces " ? Je débute en Python, j'espère n'avoir rien loupé en ce qui concerne la gestion des types de données ... J'ai aussi essayé des choses comme .strip() pour essayer d'enlever les ", mais rien à faire. Et j'aimerais comprendre pourquoi ils apparaissent de toutes façons ...
 
Par avance merci !


---------------
Les pièces jointes, c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas.
Reply

Marsh Posté le 14-04-2016 à 19:43:41   

Reply

Marsh Posté le 14-04-2016 à 20:45:59    

Et si ligne 4 : Date = "Date.UTC...."
 
T'enlève les premier et dernier " ?

Reply

Marsh Posté le 14-04-2016 à 21:28:46    

J'ai essayé au cas où, ça marche pas : NameError: name 'Date' is not defined
 
Ce qui me paraît logique, si j'indique pas que c'est du texte il ne comprend pas d'où sort "Date.UTC..."


---------------
Les pièces jointes, c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas.
Reply

Marsh Posté le 14-04-2016 à 21:30:36    

talium a écrit :

J'ai essayé au cas où, ça marche pas : NameError: name 'Date' is not defined
 
Ce qui me paraît logique, si j'indique pas que c'est du texte il ne comprend pas d'où sort "Date.UTC..."


 
Et t'a pas un autre moyen d'indiquer que c'est d texte ?

Reply

Marsh Posté le 14-04-2016 à 21:48:54    

Avec l'opérateur de concatenation peut-être ?
 
genre "" & Date.UTC...

Reply

Marsh Posté le 14-04-2016 à 22:29:20    

non plus :(


---------------
Les pièces jointes, c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas.
Reply

Marsh Posté le 14-04-2016 à 23:09:08    

Si tu place un le mot string devant date ?
 
Si non, ça m'a l'air un peut plus complexe, il faudrait apparemment utiliser une fonction de formatage et la fonction Date.toString
j'ai tapé, how to obtain date string with java dans google.


Message édité par Profil supprimé le 14-04-2016 à 23:10:50
Reply

Marsh Posté le 15-04-2016 à 11:46:53    

Il faudrait que date soit du type date et que tu l'instancie avec un datetime.date([bla bla])

 

Actuellement c'est une chaine de caractère qui est forcément entre guillemets en JSON.


Message édité par h3bus le 15-04-2016 à 11:48:00

---------------
sheep++
Reply

Marsh Posté le 15-04-2016 à 14:30:42    

Ok, compris.
Bon, j'ai résolu mon problème du coup grâce à ça, plutôt que d'écrire dans un Array et d'écrire mon Array à la fin dans un fichier, j'écris au fur et à mesure dans le fichier, ça m'évite d'avoir une chaîne de caractères dans un Array qui impose les ".
 
Merci !


---------------
Les pièces jointes, c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed