PythonでWebサイト上のテーブルをスクレイピングしGoogleスプレッドシートに記入するプログラムを実行したところ、表題のエラー
Object of type int64 is not JSON serializable
が表示されました。
目次
エラーが生じた状況
SMBC日興証券の口座残高テーブルを一覧で取得→スプレッドシートに貼り付け
を行おうとしたところ、上記のエラーが出てしまいました。
他のテーブル(注文中、建玉一覧等)は出来ていたので口座残高テーブルの内容を精査する必要がありそうでした。
エラー原因
int64が含まれていたことが原因でした。
d.typesで列ごとの型を確認してみます。(indexのrenameやカラムのsplit処理を行なっているため、列名は元テーブルと異なっています)
print(df_kabushiki.dtypes)
銘柄コード object
銘柄名 object
数量 int64
解決策
int64をobjectに変換
数量列がint64になっていたため、このままだとスプレッドシートに貼り付け出来ません。
astypeで変換しました。
df_kabushiki=df_kabushiki.astype(({"数量": object}))
dtypesで確認してみます。
print(df_kabushiki.dtypes)
銘柄コード object
銘柄名 object
数量 object
と、int64型をobjectに変換すると無事スプレッドシートへ貼付まで終えることができました。
参考サイト
PythonでスクレイピングしてGoogleスプレッドシートに特定URLのタイトルと見出しを取得するプログラム
今回のPythonのプログラムは特定のURLを指定するとそのサイトをスクレイピングして、タイトルとHタグ(H1からH6タグ)をGoogleスプレッドシートに記録してくれるプログラムで...