2009-08-03 2 views
1

У меня есть вложенное Dict, как этонужно поместить вложенную Dict в текстовый файл

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/col2 data3/data1 col2/data2 col2/data3 (так далее ...)

Моя проблема Как убедиться, что текст идет по соответствующей колонке?
i.e Скажем, я поместил некоторый текст под столбцом time114, и я снова столкнулся с столбцом14 в другой временной метке. Как отслеживать расположение этих столбцов в текстовом файле?

Столбцы просто числа (в виде строки)

+0

Кстати, зачем вам это нужно? Если вы ищете способ хранения объектов python, вы можете посмотреть модули pickle/cPickle. – dalloliogm

+0

Нет Мне не нужно хранить объекты на диске. Просто напишите строку (соответствующую каждому столбцу и временной метке) в текстовый файл. – Goutham

ответ

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) 
+0

Спасибо. Довольно многое, что мне нужно. – Goutham

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() 

Работы красиво. Легко редактировать вручную. Легко разобрать.

Смежные вопросы