Я пытаюсь использовать файл .json и хочу создать новый файл .csv, чтобы вычислить общее время, необходимое для завершения уровня, который находится между startTask и endTask. Куда мне идти оттуда?
Это для стороннего проекта, работающего на Python 3. В прошлом я пробовал разные способы подсчета общего времени для завершения уровня, который находится между startTask и endTask, но столбец total_time пуст.
filtered_data = []
for element in revised_data:
if element[1].get('action_id', '') == 'state-save':
continue # skips it
if 'state-path' in element[1].get('action_id', ''):
continue # skips it
filtered_data.append(element)
new_data = []
targets = ['session_id','user_id','quest_id','quest_detail', 'quest_seq_id','dynamic_quest_id','action_id',
'action_detail','client_timestamp']
for i in range(len(filtered_data)):
element = filtered_data[i]
previous = filtered_data[i - 1]
new_element = {
"type": element[0]
}
for target in targets:
new_element[target] = element[1].get(target, '')
# Calculate the total time to complete a level.
time = datetime.fromtimestamp(new_element['client_timestamp']/1000)
new_element['time_stamp'] = time.strftime("%Y-%m-%d %H:%M:%S")
new_element['time_elapsed'] = ''
if element[0] == 'startTask':
row = []
start = element
elif element[0] == 'action':
pass
#new_element['total_time'] = new_element['client_timestamp'] - previous[1]['client_timestamp']
#new_data.append(new_element)
elif element[0] == 'endTask':
end = element
new_data.append(row)
headers = ["type", "time_elapsed", "time_stamp", "total_time"] + targets # similar to prepend
name_of_file = sys.argv[1] + "_1" + ".csv"
with open(name_of_file, 'w', newline='') as saved_file: # Write the file so that you can save the file
# Write some data and write a dictionary writer
w = csv.DictWriter(saved_file, fieldnames=headers) # look at dictionary and order labels in order
w.writeheader() # writes the top row of file with labels for you
w.writerows(new_data)
Я ожидаю, что в столбце total_time будет указано общее время всех действий, которые произошли между startTask и endTask, но на самом деле результатов нет.