私はpostgresqlデータベースを使用するpython3プログラムを書いています、私はデータベースドライバーとしてpy-postgresql: http ://python.projects.postgresql.org/を使用しています。1つのテーブルには、inetタイプを使用してIPアドレスが格納されます。
次のプリペアドステートメントを作成しました。
aID = db.prepare('SELECT id FROM a_records WHERE ip = $1 LIMIT 1')
aID(ip)を呼び出すと、次のエラーが発生します。
(ipはPython文字列です)
File "/usr/local/lib/python3.1/dist-packages/postgresql/driver/pq3.py", line
1517, in __call__
c = SingleXactFetch(self, parameters)
File "/usr/local/lib/python3.1/dist-packages/postgresql/driver/pq3.py", line
837, in __init__
Output.__init__(self, '')
File "/usr/local/lib/python3.1/dist-packages/postgresql/driver/pq3.py", line
622, in __init__
self._init()
File "/usr/local/lib/python3.1/dist-packages/postgresql/driver/pq3.py", line
854, in _init
STEP()
File "/usr/local/lib/python3.1/dist-packages/postgresql/driver/pq3.py", line
2612, in _pq_step
self.typio.raise_error(x.error_message, cause = getattr(x, 'exception', Non
e))
File "/usr/local/lib/python3.1/dist-packages/postgresql/driver/pq3.py", line
507, in raise_error
self.raise_server_error(error_message, **kw)
File "/usr/local/lib/python3.1/dist-packages/postgresql/driver/pq3.py", line
498, in raise_server_error
raise server_error
postgresql.exceptions.BinaryRepresentationError: invalid address family in exte
rnal "inet" value
CODE: 22P03
LOCATION: File 'network.c', line 218, in network_recv from SERVER
RESULT:
type: SingleXactFetch
parameters: ('139.78.113.1',)
STATEMENT: [prepared]
sql_parameter_types: ['pg_catalog.inet']
results: (id INTEGER)
statement_id: py:0x2ff9a50
string: SELECT id FROM a_records WHERE ip = $1 LIMIT 1
CONNECTION: [idle]
client_address: 127.0.0.1/32
client_port: 51563
version:
PostgreSQL 8.4.7 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.4.real (Debi
an 4.4.5-8) 4.4.5, 64-bit
CONNECTOR: [IP4] pq://python:***@127.0.0.1:5432/vdz
category: None
DRIVER: postgresql.driver.pq3.Driver
誰かが私がこれをデバッグし、postgresqlがinetデータを好まない理由を理解するのを手伝ってもらえますか?
ありがとう!