我有以下形式的字典:轉換字典以二進制的python
a = {(7, 190, 0): {0: 0, 1: 10, 2: 10, 3: 37, 4: 45, 5: 49, 6: 69, 7: 45, 8: 130, 9: 59}}
,我試圖寫這個以二進制格式的文件。目前正在使用python 2.3
我試過在一個簡單的列表上使用struct模塊,它看起來像它可以工作,但是當我移動到字典時,它會拋出一個錯誤,說所需的參數不是整數。什麼是解決這個問題的好方法?我想某事像這樣:
packed_d=[]
for ssd,(add_val) in a.iteritems():
pack_d=struct.pack('BHB',ssd)
packed_data.append(pack_d)
這是它扔了錯誤..
有什麼建議?
編輯: 酷,這就是我失蹤,詹恩。 我嘗試了以下,它看起來像它的工作,並能夠解壓以及檢查是否一切正常。你認爲這是一個好辦法嗎?謝謝!
data = {(7, 190, 0): {0: 0, 1: 101, 2: 7, 3: 0, 4: 0}}
packed_data=[]
for ssd,add_val in data.iteritems():
pack_d=struct.pack('BHB', *ssd)
packed_data.append(pack_d)
for add,val in data[ssd].iteritems():
pack_t=struct.pack('BH', add,val)
packed_data.append(pack_t)
packed_data = [ '\ X07 \ X00 \ XBE \ X00 \ X00', '\ X00 \ X00 \ X00 \ X00', '\ X01 \ x00e \ X00',「\ X02 \ X00 \ X07 \ x00','\ x03 \ x00 \ x00 \ x00','\ x04 \ x00 \ x00 \ x00']
爲什麼使用如此古老的python版本? – 2013-05-03 06:41:06
是的,你的Python版本很快會有它的第十個生日。 ;-)另外,包括追蹤的副本通常是一個好主意。 – 2013-05-03 06:49:04
「這是它拋出錯誤的地方..」哪一個? – glglgl 2013-05-03 07:26:35