2 回答

TA贡献1725条经验 获得超7个赞
这种方法在读取数据方面开始运行良好且快速
import psycopg2
from config import config
import msgpack
import msgpack_numpy as m
def write_to_db(encoding, link):
""" insert a new array into the test1_db table """
sql = """INSERT INTO test1_db VALUES(%s,%s);"""
conn = None
dumped_data = msgpack.packb(encoding, default=m.encode)
try:
params = config()
conn = psycopg2.connect(**params)
cur = conn.cursor()
cur.execute(sql, (dumped_data, link))
conn.commit()
cur.close()
except (Exception, psycopg2.DatabaseError) as e:
print(e)
finally:
if conn is not None:
conn.close()
def read_from_db():
""" query data from the test1_db table """
conn = None
row = None
try:
params = config()
conn = psycopg2.connect(**params)
cur = conn.cursor()
cur.execute("SELECT encodings, link FROM test1_db")
print("The number of rows: ", cur.rowcount)
row = cur.fetchone()
cur.close()
except (Exception, psycopg2.DatabaseError) as error:
print(error)
finally:
if conn is not None:
conn.close()
encoding1, somelink = row
return msgpack.unpackb(encoding1, object_hook=m.decode), somelink

TA贡献1770条经验 获得超3个赞
尝试使用pickle python进行二进制序列化/反序列化
例子:
import numpy as np
from pickle import dumps, loads
data=np.array([1,2,4,5,6])
dumped_data = dumps(data)
loaded_data = loads(dumped_data)
print(dumped_data)
print(loaded_data)
添加回答
举报