0
我在SQLAlchemy中有一個表,其中有一列IP地址,表示爲十進制格式。 如何將其更改爲顯示點狀格式?sqlalchemy將十進制IP地址更改爲虛線
我在SQLAlchemy中有一個表,其中有一列IP地址,表示爲十進制格式。 如何將其更改爲顯示點狀格式?sqlalchemy將十進制IP地址更改爲虛線
從數據庫中獲取十進制值並在Python代碼中進行轉換。安裝IPy
模塊並執行以下操作:
from IPy import IP
ip_dotted = str(IP(ip_dec))
如果您在使用Python 3.3,有ipaddress
在STDLIB:
from ipaddress import ip_address
ip_dotted = str(ip_address(ip_dec))
如果RDBMS中的使用是PostgreSQL的,轉化可以在數據庫級別上進行:
from sqlalchemy.sql import cast, func
from sqlalchemy.dialects.postgresql import INET
session.query(func.host(cast('0.0.0.0', INET) + SomeTable.ip_dec)).scalar()
最後,你可以自己做計算的,所以不會有具體的圖書館,Python版本或RDBMS任何依賴關係:
segments = []
# From 3 to 0.
for n in range(3, -1, -1):
p = 256 ** n
segments.append(str(ip_dec // p))
ip_dec %= p
ip_dotted = '.'.join(segments)