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

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

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

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

1回答

461閲覧

pythonで株価取得、エラー処理

KenKenPaPPa

総合スコア24

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2017/07/25 06:53

###前提・実現したいこと
お世話になっております。
株価取得のためにjsmモジュールを利用しています。
特定の期間の株価を取得したいのですが、エラーが出てしまいます。
私の考えでは指定した期間中に株価が存在していない(倒産などが理由?)のだと思います。
違う原因が考えられるのであれば対処法を教えていただけるとありがたいです。
もし、私の考えた通り株価の値が返ってこないのが原因なのであれば、返ってこない時に強制的に次の処理に写すことは可能でしょうか?可能であれば実現方法を教えていただきたいです。

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

Traceback (most recent call last): File "GetStockDataError.py", line 19, in <module> Historical_Prices = q.get_historical_prices(3986, jsm.DAILY, start_date, end_date) #ある期間の株価を取得 File "/Library/Python/2.7/site-packages/jsm/__init__.py", line 57, in get_historical_prices return p.get_range(ccode, start_date, end_date) File "/Library/Python/2.7/site-packages/jsm/historicalprices.py", line 125, in get_range p.fetch(start_date, end_date, ccode, self._range_type, page) File "/Library/Python/2.7/site-packages/jsm/historicalprices.py", line 42, in fetch raise CCODENotFoundException("couldn't find ccode") jsm.exceptions.CCODENotFoundException: couldn't find ccode

###該当のソースコード

python

1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3import sys 4import codecs 5import jsm #Yahoo!ファイナンスからスクレイピングしたもの 6import datetime 7import warnings 8from time import sleep 9 10sys.stdout = codecs.getwriter('utf_8')(sys.stdout) #utf-8の文字をプリント 11warnings.simplefilter("ignore", category=UserWarning) #警告無視 12 13q = jsm.Quotes() 14 15start_date = datetime.date(2017, 4, 3) 16end_date = datetime.date(2017, 6, 14) #50日間 17 18start_stock_copy = list(start_stock) 19 20 21Historical_Prices = q.get_historical_prices(3986, jsm.DAILY, start_date, end_date) #ある期間の株価を取得,3986は取得したい株価の証券コード 22 23print Historical_Prices 24 25

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

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

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

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

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

guest

回答1

0

ベストアンサー

違う原因が考えられるのであれば対処法を教えていただけるとありがたいです。

公式のドキュメント見つからなかったので推測ですが、おそらくそうだと思います。

もし、私の考えた通り株価の値が返ってこないのが原因なのであれば、返ってこない時に強制的に次の処理に写すことは可能でしょうか?可能であれば実現方法を教えていただきたいです。

以下のように例外を捕捉することで、処理を続行できます。

Python

1# 略 2try: 3 Historical_Prices = q.get_historical_prices(3986, jsm.DAILY, start_date, end_date) #ある期間の株価を取得,3986は取得したい株価の証券コード 4 print(Historical_Prices) 5except jsm.exceptions.CCODENotFoundException: 6 pass # 何もしない 7# 続行したい処理

投稿2017/07/25 07:06

can110

総合スコア38260

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

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

KenKenPaPPa

2017/07/26 04:33

try文を使うのですね。言語を学んでいる段階なのでとても勉強になりました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問