Python初学者です。
実現したいこと
1、BitflyerのAPIに接続
2、残高が0でないコインの情報を取得
3、取得した要素をFlaskを使用してHTMLに表示させたいです。
以下のコードで残高が0でない要素のみを正しく取得することが出来ました。
Python
1import pybitflyer 2import time 3from datetime import datetime 4from pytz import timezone 5from dateutil import parser 6 7BALANCE_KEYS = ["currency_code", 8# "amount", 9 "available"] 10 11API_KEY = "" 12API_SECRET = "" 13 14 15 16api = pybitflyer.API(api_key = API_KEY, api_secret = API_SECRET) 17balances = api.getbalance(product_code="BTC_JPY") 18 19for balance in balances: 20 21 if balance ["available"] == 0: 22 continue 23 for balance_key in BALANCE_KEYS: 24 result =(balance_key + " : " + str(balance[balance_key])) 25 print(result +"\n") 26``` 27 28しかし、上記の処理を関数化しようとして以下のように書き換えたところ、上で出力した返り値の最後の要素のavailableのみしか取得ができません。 29 30```Python 31import pybitflyer 32from flask import Flask, render_template,request 33import time 34from datetime import datetime 35import json 36from dateutil import parser 37from pytz import timezone 38 39 40 41BASE_URL ="https://api.bitflyer.jp" 42url = BASE_URL + "POST /v1/me/sendchildorder" 43 44API_KEY ="" 45API_SECRET ="" 46api = pybitflyer.API(API_KEY,API_SECRET) 47 48BALANCE_KEYS = ["currency_code", 49 "available"] 50balances = api.getbalance(product_code="BTC_JPY") 51 52def get_balance(): 53 for balance in balances: 54 if balance["available"]==0: 55 continue 56 for balance_key in BALANCE_KEYS: 57 balance_result=(balance_key +" : " +str(balance[balance_key])) 58 return balance_result 59 60``` 61残高が0でない全ての要素を取得、かつ関数化するにはどのようにコードを書き換えれば良いのでしょうか? 62returnの書き方に問題があるのでしょうか。 63また、なぜ上記2つのコードの出力結果がこんなにも違うのか、理由がわかりません。 64なお、APIの情報は個人情報保護のため削除しておりますが、実際のコードには記述があります。 65 66どなたかご存知の方がいらっしゃいましたら、ご教授ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/18 14:16
2021/04/18 14:20 編集
2021/04/18 14:30
2021/04/19 01:11