我有一个像这样的嵌套字典
d={ time1 : column1 : {data1,data2,data3}
column2 : {data1,data2,data3}
column3 : {data1,data2,data3} #So on.
time2 : {column1: } #Same as Above
}
data1,data2,data3表示数据的类型,而不是数据本身 我需要把这个dict放到这样的文件中。
时间戳col1 / data1 Col1 / data2 col1 / data3 col2 / data1 col2 / data2 col2 / data3(依此......)
我的问题是如何确保文本在相应的列下? 也就是说我在time1 column14下放了一些文本,我又在另一个时间戳中遇到了column14。如何在文本文件中跟踪这些列的位置?
列只是数字(以字符串形式)
答案 0 :(得分:3)
我会使用JSON。
在Python 2.6中它可以直接使用,在早期的Python中你必须下载并安装它。
try:
import json
exception ImportError:
import simplejson as json
out= open( "myFile.json", "w" )
json.dump( { 'timestamp': time.time(), 'data': d }, indent=2 )
out.close()
很好地工作。易于手动编辑。易于解析。
答案 1 :(得分:1)
我会这样做:
#get the row with maximum number of columns
maxrowlen = 0
maxrowkey = ""
for timesid in d.keys():
if len(timesid.keys()) > maxrowlen:
maxrowlen = len(timesid.keys())
maxrowkey = timesid
maxrowcols = sorted(d[maxrowkey].keys())
# prepare the writing
cell_format = "%10r" # or whatever suits your data
# create the output string
lines = []
for timesid in d.keys(): # go through all times
line = ""
for col in maxrowcols: # go through the standard columns
colstr = ""
if col in d[timesid].keys(): # create an entry for each standard column
colstr += cell_format % d[timesid][col] # either from actual data
else:
colstr += cell_format % "" # or blanks
line += colstr
lines.append(line)
text = "\n".join(lines)