[问题] 如何将 class buffer 转换成 list

楼主: hl4 (Zec)   2014-06-05 19:32:43
目的是将int list,存入sqlite3的数据库的一个字段中,在之后读出回复为int list。
但是在读取之后,不知道应该怎么将位元矩阵恢复为4-byte为单位的整数资料
写入的过程如下:
# 建立数据库和数值初始化
c.execute('''CREATE TABLE IF NOT EXISTS Log (id INTEGER PRIMARY KEY,
tag TEXT, data BLOB)''')
tmp = [1, 2, 3, 4]
# int list 转换为 buffer
a = array.array('I', tmp)
b = buffer(a.tostring())
# 写入新资料
c.execute('''INSERT INTO Log(tag, data) VALUES ('R1', ?)''', (b,))
conn.commit()
目前的读取方式:
for row in c.execute('''SELECT * FROM Log'''):
print bytearray(row[2])[0]
print bytearray(row[2])[1]
print bytearray(row[2])[2]
然后就看到原本的4-byte的数值被切成1-byte,不知道应该怎么恢复。
虽然我也可以自己加乘起来,但是这貌似不是这样设计的,就来po文问问。
谢谢。
作者: kilfu0701 (享受人生快乐至上)   2014-06-05 23:34:00

Links booklink

Contact Us: admin [ a t ] ucptt.com