Вычитание метки времени из файла json в python

#python #json

#python #json

Вопрос:

Я пытался вычесть две временные метки из двух файлов json с помощью python. Два файла json были файлами .srt, которые имеют время начала и окончания предложения. Я преобразовал srt в json для извлечения метки времени и вычитания двух разных временных меток одного и того же предложения из двух разных файлов. Я использовал вложенный цикл for для обхода вместе с вычитанием временных меток. Это не дает желаемого результата. Любая другая идея для вычитания двух меток времени из разных файлов json?

Мой код:

 import json
from datetime import datetime

with open('SRT_en.json') as f:
   config_en= json.load(f)

with open('SRT_zh.json', encoding= "utf-8") as g:
   config_zh= json.load(g)

for time_en in config_en['captions']:
   b1=time_en['endTime']

   for time_zh in config_zh['captions']:
      b2= time_zh['endTime']
      c=b1.replace(',','.')
      
   d= b2.replace(',','.')
   d1= datetime.strptime(c,"%H:%M:%S.%f")
   d2= datetime.strptime(d,"%H:%M:%S.%f")
   print(d1-d2)
 

Возможно, я здесь кажусь полным новичком, но на самом деле застрял здесь.

Комментарии:

1. Можете ли вы привести пример данных, с которыми вы используете этот код?

2. Я немного смущен тем, что вы пытаетесь здесь сделать. Кроме того, я думаю, что ваш отступ выключен, я думаю c=b1.replace(',','.') , должен быть отступ слева. Можете ли вы предоставить файлы json, которые вы используете? Вы пытаетесь вычесть две временные метки один раз или выполнить итерацию по нескольким временным меткам и вычесть их все?

3. @LayneBernardo Бернардо Спасибо за совет. Я пытаюсь вычесть метки времени из одного и того же предложения и одной и той же строки, но они являются преобразованными файлами json файлов .srt. Это закрытые субтитры на двух разных языках, один английский и один китайский. Извините, но я не могу поделиться файлами здесь. Было бы здорово, если бы вы, ребята, могли мне помочь. Я могу объяснить вам еще раз, если вы все еще не поняли, что я сказал.

4. Извините @JackTaylor, но мне запретили делиться этим файлом.

5. Полученный код выполняет итерацию по объекту captions и каждый раз присваивает b1 и b2 endTime значение. Вы не выполняете фактическое вычитание до завершения обеих итераций, поэтому вы получите только разницу между двумя последними метками времени в объектах. Кроме того, с вашим текущим отступом второй цикл является вложенным. Отступы важны в Python. Вы должны получать обе метки времени и вычитать их на каждом шаге итерации, а не перебирать обе по отдельности, а затем вычитать последние значения.