Вот мой код
import requests import json ######################## URL Endpoints ######################## url_sandbox = 'https://sandbox-api.coinmarketcap.com/v1/cryptocurrency/listings/latest' ############# Authentication ont the web-server ############### auth_sandbox = { 'sort': 'market_cap', 'start': '1', 'limit': '3', 'cryptocurrency_type': 'all', 'convert': 'USD', 'CMC_PRO_API_KEY': 'XXXXX-YYYY-4492-PPPP-ZSDSIQWEUD' } # dict to authenticate on a test environment ######### Getting top 100 Crypto from the Coinmarket ############ auth = requests.get(url_sandbox, params=auth_sandbox) cryptocurrency_list = json.loads(auth.content) print(cryptocurrency_list) print(type(cryptocurrency_list))
От сервера получаю json ответ
{ "status": { "timestamp": "2019-01-18T14:15:23.429Z", "error_code": 0, "error_message": null, "elapsed": 6, "credit_count": 1 }, "data": [ { "id": 1, "name": "Bitcoin", "symbol": "BTC", "slug": "bitcoin", "circulating_supply": 17435912, "total_supply": 17435912, "max_supply": 21000000, "date_added": "2013-04-28T00:00:00.000Z", "num_market_pairs": 6695, "tags": [ "mineable" ], "platform": null, "cmc_rank": 1, "last_updated": "2018-12-22T06:08:23.000Z", "quote": { "USD": { "price": 3881.88864625, "volume_24h": 6341959230.33247, "percent_change_1h": 0.426252, "percent_change_24h": -4.10839, "percent_change_7d": 19.472, "market_cap": 67684268829.81413, "last_updated": "2018-12-22T06:08:23.000Z" } } }, { "id": 52, "name": "XRP", "symbol": "XRP", "slug": "ripple", "circulating_supply": 40794121066, "total_supply": 99991738974, "max_supply": 100000000000, "date_added": "2013-08-04T00:00:00.000Z", "num_market_pairs": 307, "tags": [], "platform": null, "cmc_rank": 2, "last_updated": "2018-12-22T06:08:03.000Z", "quote": { "USD": { "price": 0.353610065729, "volume_24h": 617573458.768739, "percent_change_1h": 0.712268, "percent_change_24h": -3.66051, "percent_change_7d": 22.3608, "market_cap": 14425211831.505043, "last_updated": "2018-12-22T06:08:03.000Z" } } }, { "id": 1027, "name": "Ethereum", "symbol": "ETH", "slug": "ethereum", "circulating_supply": 103938514.4366, "total_supply": 103938514.4366, "max_supply": null, "date_added": "2015-08-07T00:00:00.000Z", "num_market_pairs": 4792, "tags": [ "mineable" ], "platform": null, "cmc_rank": 3, "last_updated": "2018-12-22T06:08:17.000Z", "quote": { "USD": { "price": 108.4856134, "volume_24h": 2315879861.38542, "percent_change_1h": 0.540547, "percent_change_24h": -4.84225, "percent_change_7d": 28.202, "market_cap": 11275833494.539307, "last_updated": "2018-12-22T06:08:17.000Z" } } } ] }
потом я его преобразую в словарь
{u'status': {u'credit_count': 1, u'timestamp': u'2019-01-18T14:17:39.133Z', u'error_message': None, u'error_code': 0, u'elapsed': 7}, u'data': [{u'last_updated': u'2018-12-22T06:08:23.000Z', u'platform': None, u'name': u'Bitcoin', u'tags': [u'mineable'], u'quote': {u'USD': {u'market_cap': 67684268829.81413, u'last_updated': u'2018-12-22T06:08:23.000Z', u'percent_change_7d': 19.472, u'price': 3881.88864625, u'percent_change_24h': -4.10839, u'volume_24h': 6341959230.33247, u'percent_change_1h': 0.426252}}, u'symbol': u'BTC', u'slug': u'bitcoin', u'total_supply': 17435912, u'num_market_pairs': 6695, u'max_supply': 21000000, u'circulating_supply': 17435912, u'cmc_rank': 1, u'date_added': u'2013-04-28T00:00:00.000Z', u'id': 1}, {u'last_updated': u'2018-12-22T06:08:03.000Z', u'platform': None, u'name': u'XRP', u'tags': [], u'quote': {u'USD': {u'market_cap': 14425211831.505043, u'last_updated': u'2018-12-22T06:08:03.000Z', u'percent_change_7d': 22.3608, u'price': 0.353610065729, u'percent_change_24h': -3.66051, u'volume_24h': 617573458.768739, u'percent_change_1h': 0.712268}}, u'symbol': u'XRP', u'slug': u'ripple', u'total_supply': 99991738974, u'num_market_pairs': 307, u'max_supply': 100000000000, u'circulating_supply': 40794121066, u'cmc_rank': 2, u'date_added': u'2013-08-04T00:00:00.000Z', u'id': 52}, {u'last_updated': u'2018-12-22T06:08:17.000Z', u'platform': None, u'name': u'Ethereum', u'tags': [u'mineable'], u'quote': {u'USD': {u'market_cap': 11275833494.539307, u'last_updated': u'2018-12-22T06:08:17.000Z', u'percent_change_7d': 28.202, u'price': 108.4856134, u'percent_change_24h': -4.84225, u'volume_24h': 2315879861.38542, u'percent_change_1h': 0.540547}}, u'symbol': u'ETH', u'slug': u'ethereum', u'total_supply': 103938514.4366, u'num_market_pairs': 4792, u'max_supply': None, u'circulating_supply': 103938514.4366, u'cmc_rank': 3, u'date_added': u'2015-08-07T00:00:00.000Z', u'id': 1027}]} <type 'dict'>
Хочу из этого всего обращаться к каждой “секции” и получать либо полный ответ конкретной секции или определенные элементы секции.
Например, как мне из этого всего получить все значения именно по “Ethereum”?
Пытался работать со словарем и получать значения по ключу, но дело в том, что ключ у нас “data”, а все значения это вот как раз эти самые разные секции и как обратиться к одной секции не знаю.
Работать со строкой и перебирать каждый символ не очень удобно, потому как ответ от сервера может поменяться. Мне нужен какой-то “секционный” подход.