Extract data from JSON API using Python

I am looking through this part:

How to extract data from this url? I want to print "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 

This is what the API displays as a result of the print url command:

 { "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 } } } 
+6
source share
2 answers

You can use the json module to parse the Python dictionary and get the right to a value like this:

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

To do this several times (to answer your question in the comments section):

 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'] 
+14
source

convert response to json and then read it

 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') 
+2
source

All Articles