如何从这个 JSON 数组中提取一个值?
How can I extract one value from this JSON ARRAY?
这是我从 MPI ELAN 获得的数据,它是该程序中使用的关于电影的文件:
'[{"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.avi", "MIME_TYPE": "video/*", "TIME_ORIGIN": "176040"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-LEWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "100408"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-PRAWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "82199"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.mp3", "MIME_TYPE": "audio/*"}]'
我想从此键中提取值:"TIME_ORIGIN": "82199" 我认为这是 JSON 数组,但我做不到。
def podajczasyfilmów(plikeaf)
annofile = pympi.Elan.Eaf(plikeaf)
dane = annofile.get_linked_files()
dane = json.dumps(dane)
jsonArray = chilkat.CkJsonArray()
jsonArray.Load(dane)
i = 0
ltime = []
lfile = []
while i < jsonArray.get_Size() :
jsonObj = jsonArray.ObjectAt(i)
lplik = jsonObj.stringOf("MEDIA_URL")
lczas = jsonObj.stringOf("TIME_ORIGIN")
ltime.append(lczas)
lfile.append(lplik)
i = i + 1
dfall = pd.DataFrame(ltime,lfile)
您需要使用 json.loads(从字符串加载 json):
这是一个工作示例:
import json
my_json_string = '[{"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.avi", "MIME_TYPE": "video/*", "TIME_ORIGIN": "176040"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-LEWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "100408"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-PRAWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "82199"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.mp3", "MIME_TYPE": "audio/*"}]'
my_json = json.loads(my_json_string)
print(my_json[0]['TIME_ORIGIN'])
这是我从 MPI ELAN 获得的数据,它是该程序中使用的关于电影的文件:
'[{"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.avi", "MIME_TYPE": "video/*", "TIME_ORIGIN": "176040"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-LEWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "100408"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-PRAWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "82199"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.mp3", "MIME_TYPE": "audio/*"}]'
我想从此键中提取值:"TIME_ORIGIN": "82199" 我认为这是 JSON 数组,但我做不到。
def podajczasyfilmów(plikeaf)
annofile = pympi.Elan.Eaf(plikeaf)
dane = annofile.get_linked_files()
dane = json.dumps(dane)
jsonArray = chilkat.CkJsonArray()
jsonArray.Load(dane)
i = 0
ltime = []
lfile = []
while i < jsonArray.get_Size() :
jsonObj = jsonArray.ObjectAt(i)
lplik = jsonObj.stringOf("MEDIA_URL")
lczas = jsonObj.stringOf("TIME_ORIGIN")
ltime.append(lczas)
lfile.append(lplik)
i = i + 1
dfall = pd.DataFrame(ltime,lfile)
您需要使用 json.loads(从字符串加载 json):
这是一个工作示例:
import json
my_json_string = '[{"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.avi", "MIME_TYPE": "video/*", "TIME_ORIGIN": "176040"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-LEWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "100408"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1-PRAWA.mp4", "MIME_TYPE": "video/mp4", "TIME_ORIGIN": "82199"}, {"MEDIA_URL": "file:///Volumes/MINI RUGGED/MULTIMET2015/JOINT/29-60-S1.mp3", "MIME_TYPE": "audio/*"}]'
my_json = json.loads(my_json_string)
print(my_json[0]['TIME_ORIGIN'])