Python初心者です。
bitflyerのAPIを使って、bitflyerの残高を取得したいです。
ネットの記事を参考に、一応残高を取得することは出来たのですが、保有していないコインの情報も一緒に取得してしまうので、amountが0じゃなかったらという条件付きで要素を取り出したいです。
一応自分でも書いてみましたが、SyntaxError: invalid syntaxになってしまいました。
どのように書き換えれば、保有しているコインの情報だけを(amountが0でない)要素を取得できるでしょうか。
開発環境はpython3.8.8です。jupyter notebookを使って書いていますが、Flaskを使ってWebアプリケーション形式にすることを想定しています。
個人情報保護のため、API_KEYとSECRETは削除しています!
*追記情報*
HTMLのformからvalueを受けとって、受け取った値によって条件分岐させる構造です。
get_balanceという関数を同ファイルに書いて、イベントが起こった時に呼び出す形になっています。
データを取得に成功したらHTMLに表示させるつもりなので、取得した値は変数に入れたいです。
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 15if __name__ == '__main__': 16 api = pybitflyer.API(api_key = API_KEY, api_secret = API_SECRET) 17 18 balances = api.getbalance(product_code="BTC_JPY") 19 20 for balance in balances: 21 for balance_key in BALANCE_KEYS: 22 if(BALANCE_KEY[1]=!0) 23 print(balance_key + " : " + str(balance[balance_key])) 24 print("=================================================") 25 26 27 28``````Python 29コード
import pybitflyer
from flask import Flask, render_template,request
import time
from datetime import datetime
import json
from dateutil import parser
from pytz import timezone
BASE_URL ="https://api.bitflyer.jp"
url = BASE_URL + "POST /v1/me/sendchildorder"
API_KEY = ""
API_SECRET =""
api = pybitflyer.API(API_KEY,API_SECRET)
nounce =str(int(time.time()))
app = Flask(name)
#残高を取得する関数
def get_balance():
BALANCE_KEYS =["currency_code", "amount", "available"] balances =api.getbalance(product_code="BTC_JPY") for balance in balances: if balance ["amount"] == 0: continue for balance_key in BALANCE_KEYS: print(balance_key + " : " + str(balance[balance_key])) print("=================================================")
@app.route("/order",methods=["POST"])
#受け取った値に応じて関数を呼び出し
def receive_market():
order_type = request.form.get('order_type')
if order_type == "buy_market":
#成行買い
buy_btc=api.sendchildorder(
product_code ="XRP_JPY", child_order_type="MARKET", side="BUY", size=0.1, minute_to_expire=1000, time_in_force="GTC" ) elif order_type == "sell_market": #成行売り sell_btc=api.sendchildorder( product_code ="XRP_JPY", child_order_type="MARKET", side="SELL", size=0.1, minute_to_expire=1000, time_in_force="GTC" elif order_type =="get_balance": get_balance()
```エラー文 if balance ["amount"] == 0: TypeError: string indices must be integers
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/16 14:58
退会済みユーザー
2021/04/16 16:16
2021/04/17 02:45
退会済みユーザー
2021/04/17 03:17 編集
2021/04/17 03:42
退会済みユーザー
2021/04/17 03:59
退会済みユーザー
2021/04/17 04:09 編集
2021/04/17 05:57