Я хочу проверить, есть ли ключ для словаря: "data["streams"][1]["codec_name"]"
, и если есть возможность распечатать значения пары ключей, и если не печатать «Нет звука». На самом деле, если нет звука, все данные [«streams»] [1] отсутствуют. Сейчас скрипт всегда возвращает No Audio, даже если звук существует. Что я делаю неправильно?FFMPEG python проверить, существует ли ключ словаря
#!/usr/bin/env python
import subprocess
import json
input_file = raw_input("Please enter the input file path: ")
returned_data = subprocess.check_output(['ffprobe', '-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', input_file])
data = json.loads(returned_data.decode('utf-8'))
print "==========================Audio============================="
if 'data["streams"][1]["codec_name"]' in data:
print "Codec: %s" %(data["streams"][1]["codec_name"])
print "Sample Rate: %.3f KHz" %(int(data["streams"][1]["sample_rate"])/1000)
print "Bitrate: %d Kbps" %(int(data["streams"][1]["bit_rate"])/1000)
else:
print "NO AUDIO"
Вы проверяете, есть ли строка в 'data', вы должны выполнить' if data ["streams"] [1] ["codec_name"] в данных: ' –
@Chris_Rands, если я сделаю то, что вы предложили мне получить : ** ТипError: unhashable type: 'dict' ** error –