#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. Вы должны получать обе метки времени и вычитать их на каждом шаге итерации, а не перебирать обе по отдельности, а затем вычитать последние значения.