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 件のコメント:
コメントを投稿