[問題] 如何將 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