HP Verticaデータベースから大量のデータを抽出してファイルに保存する必要があります。私はpyodbcでVerticaの公式ODBCドライバを使用しています。bytearrayをVARBINARY(16)列からIPアドレスに変換する
これは私がこれまでにやっていることです:
cnxn = pyodbc.connect('DRIVER={Vertica};SERVER=localhost;DATABASE=db;UID=user;PWD=pw')
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
cnxn.setencoding(str, encoding='utf-8')
cnxn.setencoding(unicode, encoding='utf-8')
cur = cnxn.cursor()
cur.execute("SELECT * FROM schema.table LIMIT 3")
は、その後、私はデータに
for row in cur:
print row
フィールドのほとんどがうまく返され
読む - Unicodeテキスト、数値または日付時刻を。しかし、IPアドレスを格納するフィールドの場合は、次のようになります。bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\no\x19\\')
テキストに変換するにはどうすればよいですか?
大変お手伝いをしてください。
ありがとうございます!
テーブル定義内の対応する列の型は何ですか?それらのバイトが表すはずのIPアドレスを知っていますか? –
@GordThompsonテーブル定義の対応する列の型はvarbinary(16)です。私はそれらのバイトが対応するIPアドレスを知らない。現在の設定で確認するのは簡単ではありません。 –