【Python】Object of type int64 is not JSON serializableのエラー

スポンサーリンク

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

無事、スプレッドシートへ貼付まで終えることができました。

参考サイト

Python, pandasでwebページの表(htmlのtable)をスクレイピング | note.nkmk.me
pandasを使うと、webページの表(tableタグ)のスクレイピングが簡単にできる。DataFrameとして取得したあとで、もろもろの処理を行ったり、csvファイルとして保存したりすることももちろん可能。なお、webページの表をコピーして、クリップボードの内容をDataFrameとして取得する方法もある。以下の記事...
PythonでスクレイピングしてGoogleスプレッドシートに特定URLのタイトルと見出しを取得するプログラム
今回のPythonのプログラムは特定のURLを指定するとそのサイトをスクレイピングして、タイトルとHタグ(H1からH6タグ)をGoogleスプレッドシートに記録してくれるプログラムです。このプログラムを通してPythonを使った簡単なスクレ