IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Stockage données JSON


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Stockage données JSON
    Bonjour à tous,

    Dans le cadre de mon stage, j'utilise un outil nommé TaDaWeb qui grosso-modo fait du scraping de site web, centralise les bouts de codes html que l'on a choisi sur les sites web sources, on peut donc extraire des listes (par exemple les liens des dernières news).

    On peut donc créer des TaDa, qui sont un agglomérat de divers sorties depuis différentes sources (un TaDa concernant le football, j'aurais en entrée le site web de l'équipe, eurosport, etc... et j'aurais en sorti, une liste des dernières news de l'équipe sur le foot, le flux RSS d'eurosport etc..).

    TaDaWeb propose un interface web pour checker nos tadas, mais aussi, une API REST qui permet de récupérer un code en JSON représentant le TaDa que l'on veut consulter, on pourra ensuite l'analyser, le stocker dans une BDD, etc...

    Malgré des bases en HTML/CSS, PHP, C/C++, je n'ai jamais utilisé une API telle que celle-ci, ni le JSON.

    Voici un exemple de code de l'API en Python fournit dans l'aide de TaDaWeb (à la fin du message)


    Selon moi, l'API sert simplement à consultant la BDD de chez TaDaWeb est ensuite renvoyer sous format JSON le TaDa souhaité. Puis-je donc faire cela en C/C++ ou PHP en m'affranchissant du code python si dessous, ou dois-je nécessaire utiliser ce code Python ?

    Le but final est d'avoir un petit programme (Web ou non...à voir) pour récupérer plusieurs TaDas à la volée, les stocker dans une BDD en les analysant et en les datant pour ensuite venir faire de l'exploitation ultérieurement.

    Mes connaissances les plus solides : Mysql (SQL donc), PHP, C/C++ ... je peux m'adapter en fonction

    Merci à tous pour votre aide , en espérant avoir été clair.

    Donfal71

    Ci-dessous le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #!/usr/bin/env python
     
    import os, json, sys
    import urllib2, urllib
    import base64
     
    # API routes:
    #
    # POST /auth/token
    # DELETE /auth/token
    # GET /help
    # GET /me
    # GET /users/:uid
    # GET /tadas
    # GET /me/tadas
    # GET /users/:uid/tadas
    # GET /tadas/:tada_id
     
    #
    # Config
    #
    endpoint = 'https://api.tadaweb.com/v1'
    credentials = base64.b64encode('KEY:TOKEN')
     
    #
    # First get bearer
    #
    data = urllib.urlencode({})
    data = data.encode('utf-8')
    request = urllib2.Request(endpoint + '/auth/token', data)
    request.add_header("Authorization","Basic " + credentials)
    try:
    	f = urllib2.urlopen(request, data)
    except urllib2.HTTPError, e:
        sys.exit('Exception: code=' + str(e.code) + ', msg=' + e.msg)
    except urllib2.URLError, e:
        sys.exit('Critical - ' + str(e.args))
    except:
    	sys.exit('Critical - exception')
    data = json.loads(f.read().decode('utf-8'))
     
    def getTaDa(tada_id):
    	request = urllib2.Request(endpoint + '/tadas/' + tada_id)
    	request.add_header("Authorization", "Bearer " + base64.b64encode(data['bearer']))
    	try:
    		f = urllib2.urlopen(request)
    	except urllib2.HTTPError, e:
    		sys.exit('Exception: code=' + str(e.code) + ', msg=' + e.msg)
    	except urllib2.URLError, e:
    		sys.exit('Critical - ' + str(e.args))
    	except:
    		sys.exit('Critical - exception')
    	tada = json.loads(f.read().decode('utf-8'))
    	return tada
     
    def getTaDas():
    	request = urllib2.Request(endpoint + '/me/tadas')
    	request.add_header("Authorization", "Bearer " + base64.b64encode(data['bearer']))
    	try:
    		f = urllib2.urlopen(request)
    	except urllib2.HTTPError, e:
    		sys.exit('Exception: code=' + str(e.code) + ', msg=' + e.msg)
    	except urllib2.URLError, e:
    		sys.exit('Critical - ' + str(e.args))
    	except:
    		sys.exit('Critical - exception')
    	tadas = json.loads(f.read().decode('utf-8'))
     
    	# Loop on each TaDa
    	for r in tadas['results']:
    		tada = getTaDa(r['uid'])
    		satellites = tada['content']
    		if len(satellites) < 1:
    			print "No output found for this TaDa, problem?"
    			continue
     
    		print '================================'
    		print '================================'
    		print '================================'
    		print 'TaDa: ' + tada['name']
    		for sat in satellites:
    			if sat['type'] == 'list':
    				for sat_data in sat['data']:
    					print 'List item:' + base64.b64decode(sat_data['plaintext_b64']).strip()
    			elif sat['type'] == 'item':
    				print 'Item:' + base64.b64decode(sat['data']['plaintext_b64']).strip()
     
    getTaDas()

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    Je ne connais rien au Python, je ne connais rien à ton API, mais à la vue du code exemple que tu produis et de ce que j'en comprend, je pense que ça doit être transposable dans n'importe quel langage un tant soit peut évolué tel que C, C#, Java et autre.

    Le code montré ne fait guère que importer une librairie externe, initialiser quelques variables et paramètres, passés à une instance d'une classe de la librairie importée. C'est du classique et cette librairie doit pouvoir s'utiliser avec n'importe quel langage sachant importer des librairies externes.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Bonjour Sevyc64,

    Merci pour cette réponse, en effet, j'ai regardé un peu de doc au sujet des API basée sur l'architecture REST ( Representational State Transfer ), comme son nom le suggère, ces API peuvent être utilisées dans divers langages moyennement l'usage des librairies appropriées.

    Pour l'exploitation du JSON en PHP, je vais regarder ça sur developpez.net. Si tu as un tuyau n'hésite pas à me le faire partager.

    La question est donc close.

    Merci, et bonne fin de journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/06/2009, 14h21
  2. [AJAX]Récupération de données json (ajax)
    Par amarcil dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/10/2008, 19h47
  3. Hashage & Optimisation stockage données
    Par white_angel_22 dans le forum Langage
    Réponses: 2
    Dernier message: 11/04/2007, 23h20
  4. Stockage données de type inconnu
    Par jmartell dans le forum Administration
    Réponses: 3
    Dernier message: 06/06/2006, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo