2015-08-04 1 views
0

Je suis en train d'écrire un Bot pour Telegram en Python en utilisant Google App Engine.Erreur HTTP 400: Mauvaise demande Python, Google App Engine

Je veux utiliser un API (Doc (en bas de la page) est écrit en allemand) pour faire une annexe pour que je fait ma demande HTTP comme celui-ci

live_event = json.loads(urllib2.urlopen('http://rbtvapi.rodney.io/events').read()) 

Pour/événements il a bien fonctionné

mais quand je tryed la même chose avec http://rbtvapi.rodney.io/api/schedule il m'a renvoyé une

HTTPError: HTTP Error 400: Bad Request

Je ne suis pas tellement habitué à python ou JSON donc mes deux questions seraient

  1. Comment puis-je faire cette demande
  2. Comment puis-je obtenir le contenu d'un élément par exemple le titre du premier élément.

Edit: Je l'ai déjà essayé de import requests ou urllib3 mais comme il semble Google App Engine ne les supporte pas

+0

Je ne peux pas reproduire votre problème. 'schedule = json.loads (urllib2.urlopen ('http://rbtvapi.rodney.io/api/schedule') .read())' fonctionne très bien avec moi dans un petit jouet application GAE. S'il vous plaît écrivez et publiez (édition de votre Q) la plus petite application GAE qui vous donne ce problème (poster beaucoup de code dans les commentaires serait illisible - et je n'ai pas de réponse au-delà du problème que vous avez énoncé jusqu'à présent , n'existe tout simplement pas "ce qui n'est pas une réponse :-) –

+0

@AlexMartelli okay j'ai essayé le code aujourd'hui encore et maintenant ça marche je n'ai rien changé mais en quelque sorte tu l'as fait fonctionner donc merci :) –

+0

Tu ' re bienvenue! -) –

Répondre

2

Je vous recommande d'utiliser requests bibliothèque intead de urllib2.

Il y a un exemple espérons que cela vous aide:

import json 
import requests 
response = requests.get('http://rbtvapi.rodney.io/api/schedule') 
live_event = json.loads(response.content) 

testé et il fonctionne très bien :)

Pour obtenir les titres, vous pouvez parcourir le dictionnaire JSON

for event in live_event['schedule']: 
    print(event['title']) 
+0

Le journal Google App Engine me donne ce 'ImportError: Aucun module nommé requests' –

+1

Si vous êtes sous un environnement linux juste ce paquet: pip demandes d'installation –

+0

Comme il semble que Google App Engine ne supporte pas les demandes J'ai aussi essayé urllib3 mais ça n'a pas marché non plus –