У меня очень простая задача - у меня есть список файлов изображений и видео, и я хотел бы составить таблицу даты создания каждого из них, используя доступные данные EXIF. Я использую pyexiftool для фактического извлечения данных.
Я могу вытащить данные без проблем, но результирующий вывод JSON имеет очень странную форму. Каждая запись имеет одно поле, но это поле может содержать 2 или 3 или несколько битов информации.
Например, некоторые файлы изображений содержат XMP:CreateDate
и EXIF:CreateDate
, тогда как файлы MOV содержат 'QuickTime: CreateDate' (Я не знаю, какие поля были бы для других форматов файлов).
[{'SourceFile': '/Users/Documents/Projects/ExifData/temp/IMG_20200422_085514.JPG', 'EXIF:CreateDate': '2020:04:22 08:55:14', 'XMP:CreateDate': '2020:04:22 08:55:14'}, {'SourceFile': '/Users/Documents/Projects/ExifData/temp/IMG_20200423_091856.JPG', 'EXIF:CreateDate': '2020:04:23 09:18:57'}, {'SourceFile': '/Users/Documents/Projects/ExifData/temp/IMG_20200423_091859.JPG', 'EXIF:CreateDate': '2020:04:23 09:19:00', 'XMP:CreateDate': '2020:04:23 09:19:00'}, {'SourceFile': '/Users/Documents/Projects/ExifData/temp/MOV_0004.mp4', 'QuickTime:CreateDate': '2017:03:11 13:05:59'}, {'SourceFile': '/Users/Documents/Projects/ExifData/temp/MOV_0005.mp4', 'QuickTime:CreateDate': '2017:03:11 13:08:26'}, {'SourceFile': '/Users/Documents/Projects/ExifData/temp/MOV_0006.mp4', 'QuickTime:CreateDate': '2017:03:11 13:09:17'}, {'SourceFile': '/Users/Documents/Projects/ExifData/temp/MOV_0035.mp4', 'QuickTime:CreateDate': '2017:03:12 14:08:55'}]
Я совершенно заблудился, как разобрать этот файл, и я не могу oop просмотреть его так, как я бы обычный JSON файл. Я только хочу извлечь только имя файла и дату создания. Буду признателен за любой совет.
Спасибо.
РЕДАКТИРОВАТЬ Код, который выдает этот вывод JSON, следующий:
def old_main():
dir_name = '/Users/Documents/Projects/ExifData/temp/'
tags = ["File Name", "CreateDate"]
log_file = 'py_log.txt'
file_names = getListOfFiles(dir_name)
with exiftool.ExifTool() as e:
metadata = e.get_tags_batch(tags, file_names)
with open(log_file, "w") as outfile:
json.dump(metadata, outfile)
Итак, я вставил прямой вывод метода json.dump
. Метод get_tags_batch
задокументирован здесь .
Если я не неправильно понял документацию для этого пакета, похоже, что вывод вовсе не JSON, а скорее просто строка?
Ценю указатели и комментарии.