Python web service
Una muy buena manera de aprender Python está tratando de trabajar con varios servicios web Del API.
¿Cómo accedo a los servicios web como Youtube, Vimeo, Twitter?
Con el fin de responder a eso, primero tiene que conseguir un poco de conocimiento acerca de la API, Estructuras JSON, datos, etc
Primeros pasos
Para aquellos de ustedes que nos han seguido, que espero haber ganado algo básico Conocimientos de Python. Y para usted que no tiene, me gustaría sugerir que inicie la lectura nuestras páginas en la parte superior de la página o haga clic en el enlace de abajo que desea para leer más acerca de.
Conceptos básicos (información general) Diccionario Funciones Listas Loops Módulos Cuerdas
API: Interfaz de programación de aplicaciones
Una API es un protocolo destinado a ser utilizado como una interfaz por componentes de software para comunicarse entre sí. Una API es un conjunto de instrucciones de programación y normas para el acceso a las aplicaciones de software basadas en web (como arriba). Con las aplicaciones de la API se comuniquen entre sí sin ningún conocimiento del usuario o intervención.
A menudo, las compañías como Google, Vimeo y Twitter de Prensa Es API al público por lo que los desarrolladores pueden desarrollar productos que funcionan con su servicio. Es importante saber que una API es una interfaz de software para el software, no una interfaz de usuario.
API Key
Muchos servicios en Internet (como Twitter, Facebook ..) requiere que usted tener una "clave de API". Una clave de la interfaz de programación de aplicaciones (API key) es un código aprobado en por programas de ordenador que llaman una API para identificar el programa que llama, su creador, o de su usuario al sitio Web. Claves de la API se utilizan para realizar un seguimiento y controlar cómo se está utilizando el API, por ejemplo para prevenir el uso malicioso o abuso de la API. La clave de API a menudo actúa como un identificador único y secreto para un contador autenticación y por lo general tienen una serie de derechos de acceso a la API asociado con él.
Cuando interactuamos con una API a menudo conseguimos las respuestas en un formulario llamado JSON.
Json
Vamos muy rápido y sin entrar demasiado en-dept ver qué es JSON.
JSON (JavaScript Object Notation) es un formato compacto, basado en texto para ordenadores para intercambiar datos. Está construido en dos estructuras: - Una colección de pares nombre / valor - Una lista ordenada de valores.
JSON tomar estas formas: objetos, arreglo, valor, cadena, un número
Objeto - Conjunto desordenado de pares nombre / valor. - Comienza con {y termina con}. - Cada nombre es seguido por: (dos puntos) - Los pares de nombre / valor están separados por, (coma).
Colección - Pedido colección de valores. - Comienza con [y termina con]. - Los valores están separados por, (coma).
Valor - Puede ser una cadena entre comillas dobles, el número o verdadero o falso o nulo, o un objeto o una matriz.
Cadena - Una secuencia de cero o más caracteres Unicode, envuelto en doble citas, utilizando escapes barra invertida.
Número - Entero, long, float
Acceso a servicios Web
Python nos proporciona la json y simplejson módulos para interactuar con JSON.
En este momento, debemos saber lo que es un API que es y lo que hace. Adicional, ahora conocer los fundamentos de JSON. Para empezar a acceder a los servicios web, lo primero que tenemos que encontrar una URL para llame a la API. Antes de entrar la URL, yo realmente recomiendo que lea la documentación proporcionado (si los hay). La documentación describe cómo utilizar la API y contiene información importante sobre cómo podemos interactuar con él.
La URL que necesitamos a menudo se puede encontrar en el sitio web de la compañía, en el mismo lugar donde la documentación de la API es. Como un ejemplo: YouTube http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=json Vimeo http://vimeo.com/api/v2/video/video_id.output Reddit http://www.reddit.com/user/spilcm/comments/.json Por favor, no es que estos pueden ser obsoletos, por lo tanto, asegúrese de que usted tiene la última versión. Cuando usted tiene una URL y que ha leído la documentación aportada, que comenzar con la importación de los módulos que necesitamos.
¿Qué módulos se necesitan?
Los módulos que suelen utilizar cuando se trabaja con JSON son: - las solicitudes - json (o simplejson ) - pprint Solía usar el módulo urllib2 para abrir la URL, pero desde que Kenneth Reitz nos dio el módulo Demandas, voy a dejar que el módulo de hacer la mayor parte de mis tareas HTTP. urllib2 vs peticiones
Trabajar con los datos
Una vez que sepa qué URL que necesita y ha importado los módulos necesarios, podemos utilizar el módulo de solicitud para obtener el feed JSON. R = requests.get ("http://www.reddit.com/user/spilcm/about/.json") R.TEXT Usted puede copiar y pegar el resultado en un editor de JSON para obtener una visión más fácil sobre los datos. Utilizo http://jsoneditoronline.org/ pero cualquier editor JSON debería hacer el trabajo. El siguiente paso sería convertir la salida de JSON en un diccionario de Python.
La conversión de los datos
Esto se llevará a la cadena JSON y convertirlo en un diccionario: json.loads (R.TEXT) Nota: También puede tomar un objeto de Python y serializar a JSON, mediante el uso de json.dumps (). Sin embargo, eso no es lo que queremos hacer ahora.
Retransmisión de los resultados
Sabemos que un diccionario python y podemos empezar a usarlo para obtener los resultados que queremos. Una forma común de hacerlo es recorrer el resultado y obtener los datos que que se interese Esto a veces puede ser la parte más difícil y hay que mirar con cuidado cómo el estructura se presenta.
De nuevo, usando un editor de Json, será más fácil.
Uso de la API de YouTube
En este punto, debemos tener suficiente conocimiento y la información para crear un programa Este programa mostrará los videos más populares en YouTube.
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
| <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > #Import the modules</span> # Importar los módulos</span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > import requests< / span> solicitudes de importación< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > import json< / span> json importación< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > # Get the feed</span> # Obtener el feed</span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" >r = requests.get( "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?v=2&alt=jsonc" )< / span> R = requests.get ( "http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?v=2&alt=jsonc" )< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" >r.text< / span> R.TEXT< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > # Convert it to a Python dictionary</span> # Convertir a un diccionario de Python</span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" >data = json.loads(r.text)< / span> data = json.loads (R.TEXT)< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > # Loop through the result.</span> # Recorrer el resultado.</span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > for item in data[ 'data' ][ 'items' ]:< / span> para cada elemento de los datos [ 'data' ] [ 'artículos' ]:< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > print "Video Title: %s" % (item[ 'title' ])< / span> "Título del video:% s" print % (punto [ 'title' ])< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > print "Video Category: %s" % (item[ 'category' ])< / span> print "Video Género:% s" % (punto [ 'category' ])< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > print "Video ID: %s" % (item[ 'id' ])< / span> "ID del vídeo:% s" print % (elemento [ 'id' ])< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > print "Video Rating: %f" % (item[ 'rating' ])< / span> print "Video Rating:% f" % (punto [ 'rating' ])< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > print "Embed URL: %s" % (item[ 'player' ][ 'default' ])< / span> imprimir "Insertar URL:% s" % (elemento [ 'player' ] [ 'default' ])< / span> <span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" ><span class = "google-src-text" style = "direction: ltr; text-align: left" > print < / span> impresión< / span> |