☆☆ 新着記事 ☆☆

2019年7月11日木曜日

Numpyの数値タイプは Sqlite3 に入れられない件

numpy(Pandas)の数値タイプは、例えば、以下のようになる。

dtype: object
<class 'numpy.int64'>
1149266929565261824


これをsqlite3に格納しようとするとエラー(文字化け)する。

<b'\x00`\xd7\xf0.\x04\xf3\x0f'>,

この対処方法は、
import numpy as np
import sqlite3
sqlite3.register_adapter(np.int64, lambda val: int(val))
conn = sqlite3.connect(":memory:")
conn.execute("CREATE TABLE foo (id INTEGER NOT NULL, primary key (id))")
conn.execute("insert into foo values(?)", (np.int64(100),))

というsql文で対処するようだ。

https://stackoverflow.com/questions/38753737/inserting-numpy-integer-types-into-sqlite-with-python3

sql文は、まだ得意じゃないので、やめておく。

0 件のコメント:

コメントを投稿