Вот общий сценарий того, что вы пытаетесь сделать:
import requests
import json
class CoinBuilder:
def __init__(self,dict):
self.currency = dict['Currency']
self.currencyLong = dict['CurrencyLong']
self.minConfirmation = dict['MinConfirmation']
self.txFee = dict['TxFee']
self.isActive = dict['IsActive']
self.coinType = dict['CoinType']
self.baseAddress = dict['BaseAddress']
self.notice = dict['Notice']
coins_response = requests.get("https://bittrex.com/api/v1.1/public/getcurrencies")
all_coins = json.loads(coins_response.content)
list_of_coin_obs = []
for coin in all_coins["result"]:
list_of_coin_obs.append(CoinBuilder(coin))
Этот скрипт получает ответ, затем перебирает словари в result[]
и строит CoinBuilder
объекты из этого. Все созданные объекты также хранятся в списке, list_of_coin_obs[]
.
Затем вы можете распечатать первые 10 результатов, которые у вас есть, например, так:
# Print out the first 10 coins
print("First 10 coins:")
for i in range(1,11):
print(i,") ",list_of_coin_obs[i].currency)
Для этого примера это вывело бы:
First 10 coins:
1 ) LTC
2 ) DOGE
3 ) VTC
4 ) PPC
5 ) FTC
6 ) RDD
7 ) NXT
8 ) DASH
9 ) POT
10 ) BLK
Если вы хотите создать метод для поиска конкретной монеты по ее символу тикера, вы можете создать что-то вроде этого:
# method to retrieve a specific coin from 'list_of_coin_obs[]'
# we are passing in a parameter, 'coin_abr' to give to our filter
def get_specific_coin_by_abr(coin_abr):
return next(filter(lambda x: x.currency == coin_abr, list_of_coin_obs))
# call our method, which returns a 'CoinBuilder' type
specific_coin = get_specific_coin_by_abr('BTC')
# print our results to show it worked
print('CurrencyName: ',specific_coin.currency,'CurrencyLong: ',specific_coin.currencyLong)
Это печатает:
CurrencyName: BTC CurrencyLong: Bitcoin
Примечание: Это предполагает, что вы уже создали list_of_coin_obs[]
и в той же области действия, что и этот метод.
Одно предложение, здесь название класса CoinBuilder
не полностью имеет смысл. Лучшим именем для класса / объектов будет просто Coin
или NamedCurrency
или другое подобное имя. Думаю, я знаю, к чему вы стремились, но это, вероятно, лучше подходит для вашего проекта.
Удачи.