У меня есть файл, разделенный по конвейеру, с одним полем, содержащим некоторую информацию в формате JSON:
1|2|{"StartTime":1572300507000,"EndTime":1547506800474,"DeleteTime":1572217199000}|4
Для получения значений JSON я использую json.loads.
Сильфон является частью моего кода:
import sys,json,time
with open(sys.argv[1], 'r') as file:
for line in file:
fields = line.split('|')
print time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(fields[2])['StartTime'])
, который не работает, как ожидалось, поскольку время эпохи также составляет мс.Самое простое решение - разделить эпоху на 1000 и сделать что-то вроде этого:
time.strftime('"%Y%m%d%H%M%S"', time.localtime(json.loads(fields[2])['StartTime']/1000)
Что, конечно, не работает, так как я получаю следующую ошибку:
TypeError: unsupported operand type(s) for /: 'time.struct_time' and 'int'
Какой правильный способ сделать это?Я также пытаюсь найти наиболее эффективный способ, поскольку файл содержит миллион строк.