質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

2719閲覧

python エラー対処法について

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/03/27 15:48

編集2018/04/26 01:42

# 前提・実現したいこと
apiを使いデータを取得しているのですが数時間は取得し続けれますが一定時間がたつとエラーがかえってきてしまい、どのように対応したらいいかがわからない状況です。。
おそらくapi側のサーバー不安定が原因かと思われるのですが、繰り返し処理をするしかないのでしょうか?するのであればどうすべきでしょうか?

発生している問題・エラーメッセージ

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

もしくは

ValueError: If using all scalar values, you must pass an index

該当のソースコード

import pandas as pd
from datetime import datetime, timezone, timedelta
import pybitflyer
import time
import requests
import json
public_api = pybitflyer.API()
api = pybitflyer.API(api_key="API", api_secret="API")

while True:
bf_positions = pd.DataFrame(api.getpositions(product_code='FX_BTC_JPY'))
local_pos = 'NONE'
local_pos_price = 0
if not(bf_positions.empty):
local_pos = bf_positions.ix[[0], ['side']].values.flatten()
local_pos_price = int(bf_positions.ix[[0], ['price']].values.flatten())

print(local_pos)
time.sleep(1)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

自己解決いたしました。

投稿2018/03/29 10:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/03/29 11:13

自己解決したのなら、出来るだけ具体的にその方法を書いてください。 また、質問を編集して意味を読み取れなくするのは良くないので、質問内容を戻してください。 https://teratail.com/help#resolve-myself
guest

0

APIの制限に引っかかってませんか?

https://lightning.bitflyer.jp/docs#api%E5%88%B6%E9%99%90

投稿2018/03/27 16:22

TaroToyotomi

総合スコア1430

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/27 16:25

Private API は 1 分間に約 200 回を上限とします。 1秒ごとに行っても到達しないのですが。。 制限する回数が一定だとすれば、 あと数時間は動いていて、ある時は5分ほどしたらある時は3時間ほどしたらとまるなどムラが出ることが矛盾するかと思います。
TaroToyotomi

2018/03/27 17:53

それではサーバーの調子が悪いのでしょうね。 bf_positions = pd.DataFrame(api.getpositions(product_code='FX_BTC_JPY')) の例外をキャッチしてリトライするのが手軽だと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問