Extraiga datos de la API de JSON usando Python

Voy a través de esta parte:

¿Cómo extraigo los datos de esa URL? Sólo quiero imprimir el "networkdiff": 58954.60268219 .

 from urllib import urlopen url = urlopen('http://21.luckyminers.com/index.php?page=api&action=getpoolstatus&api_key=8dba7050f9fea1e6a554bbcf4c3de5096795b253b45525c53562b72938771c41').read() print url 

Esto es lo que muestra la API como resultado del comando print url:

 { "getpoolstatus": { "version": "1.0.0", "runtime": 16.618967056274, "data": { "pool_name": "21 Coin Pool @ Luckyminers.com", "hashrate": 485426748, "efficiency": 98.1, "workers": 14, "currentnetworkblock": 12025, "nextnetworkblock": 12026, "lastblock": 12023, "networkdiff": 58954.60268219, "esttime": 521.61956775542, "estshares": 241478052.58625, "timesincelast": 427, "nethashrate": 485426748 } } } 

Puede usar el módulo json para analizar un diccionario de Python y obtener el valor correcto de la siguiente manera:

 import json result = json.loads(url) # result is now a dict print '"networkdiff":', result['getpoolstatus']['data']['networkdiff'] 

Para hacer esto varias veces (para responder a su pregunta en la sección de comentarios):

 import json import urllib urls = {'joe': 'url1', 'jack': 'url2', 'jane': 'url3'} for who in urls.keys(): url = urllib.urlopen(urls[who]) result = json.loads(url) # result is now a dict print 'For %s: "networkdiff":' % who, result['getpoolstatus']['data']['networkdiff'] 

Convierte la respuesta a JSON y luego léelo.

 from urllib import urlopen import simplejson as json url = urlopen('http://21.luckyminers.com/index.php?page=api&action=getpoolstatus&api_key=8dba7050f9fea1e6a554bbcf4c3de5096795b253b45525c53562b72938771c41').read() url = json.loads(url) print url.get('getpoolstatus').get('data').get('networkdiff')