以下が、株価四本値データを求めるため使用しているコードとその実行エラーです。45行目にある銘柄コードが4桁数字だけだとうまく機能するのですが、147Aのようなアルファベット入りの銘柄コードが混じると下記の通りエラーが出ます。
#個別株の株価データ取得
#pip 経由でライブラリをインストール
#J-Quantsのライブラリ
!pip install jquants-api-client
#gspreadはGoogleスプレッドシートを操作するためのライブラリです
!pip install gspread
# google認証
from google.colab import auth
auth.authenticate_user()
# googleドライブへの設定(出力フォルダ)
from google.colab import drive
drive.mount('/content/drive')
import jquantsapi
import pandas as pd
import requests
import gspread
from google.auth import default
creds, _ = default()
gc = gspread.authorize(creds)
import gspread_dataframe as gs_df
import json
from pandas import json_normalize
import datetime
import time
# JQuantsのAPIを使用するためのリフレッシュトークンの取得
# 一度取得すると1週間有効ですが、実行都度取得したほうが楽なので毎回取得としています。
# JQuantsに登録したメールアドレスとパスワードを記入
data={"mailaddress":"*****", "password":"*****"}
r_post = requests.post("https://api.jquants.com/v1/token/auth_user", data=json.dumps(data))
r_post.json()
REFRESH_TOKEN = r_post.json().get("refreshToken")
r_post = requests.post(f"https://api.jquants.com/v1/token/auth_refresh?refreshtoken={REFRESH_TOKEN}")
r_post.json()
ID_TOKEN = r_post.json().get("idToken")
idToken = ID_TOKEN
# code_listに調べたい銘柄コードを入力、複数の場合はカンマで区切りで入力
df_prices = pd.DataFrame()
code_list = [8750,6762,9201,8053,9020,147A,9022,8801,4901] #ここを取得したいコードに変更、
list_ID = [str(s)+"0" for s in code_list]
from_day = "2023-12-11"
to_day = ""
for i in list_ID:
URL = "https://api.jquants.com/v1/prices/daily_quotes?code=" + str(i) + "&from=" + from_day + "&to=" + to_day
headers = {'Authorization': 'Bearer {}'.format(idToken)}
r = requests.get(URL,headers=headers)
list_prices = r.json().get('daily_quotes')
df01 = pd.DataFrame(list_prices)
df_prices = pd.concat([df_prices, df01], axis=0)
time.sleep(1)#サーバーに負荷をかけないように1秒待ちます。
df_prices['Code']=df_prices['Code'].str[:-1]
#出力されるスプレッドシートのファイル名を定義
#ファイル名を「株価データ20231231」と実行した日付をつけてみる。
filename = "株価データ"
#今日の日付を取得
today=datetime.date.today()
#日付のYYYY-MM-DDの-をカット
today=str(today).replace('-','')
#ファイル名(filename)+今日の日付(today)でファイル作成
sh = gc.create(filename) # ‘’内の名称のスプレッドシートをマイドライブに新規作成
worksheet = sh.get_worksheet(0) # シートを取得
gs_df.set_with_dataframe(worksheet, df_prices.reset_index())
print("実行完了しました")
実行エラーが以下の通り
File "<ipython-input-4-b0de21f3596d>", line 45
code_list = [8750,6762,9201,8053,9020,147A,9022,8801,4901] #ここを取得したいコードに変更
^
SyntaxError: invalid decimal literal