psycopg2を使用して、recarray内の大量のデータをpostgresに取り込むための最良の、つまり最小のコーディング方法について簡単に説明したいと思います。私はキャストを使っていくつかのものを見たことがありますが、実際にはそれはまっすぐ進むだろうと思い、ウェブ上で何か良いものを見つけることができました。
例では、200個の変数を含む国勢調査データが、多くの列に対して異なるデータ型の再配列で読み取られています。列名とデータ型を使用してスイープし、postgresに入力したいと思います。
また、psycopy2よりも優れたものがあれば、私は提案を受け入れます。
これは私が見つけたものですが、sqlightと間違った方法になります。
elif driver=='sqlite3':
tups=cur.fetchall()
if len(tups)>0:
_cast = {types.BooleanType: numpy.bool,
types.IntType: numpy.int32,
types.LongType: numpy.int64,
types.FloatType: numpy.float64,
types.StringType: numpy.str,
types.UnicodeType: numpy.str}
try:
typelist=[_cast[type(tmp)] for tmp in tups[0]]
except KeyError:
raise Exception("Unknown datatype")
res = numpy.core.records.array(tups)
else:
return None
res=[res[tmp] for tmp in res.dtype.names]
except BaseException: