Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从这个JSON数组中提取一个值?_Python_Json_Data Extraction - Fatal编程技术网

Python 如何从这个JSON数组中提取一个值?

Python 如何从这个JSON数组中提取一个值?,python,json,data-extraction,Python,Json,Data Extraction,这是我从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

这是我从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)
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)
annofile=pympi.Elan.Eaf(plikeaf) dane=annofile.get_linked_files() dane=json.dumps(dane) jsonArray=chilkat.CkJsonArray() jsonArray.Load(丹麦) i=0 时间=[] lfile=[] 而我
def podajczasyfilmów(plikeaf)
annofile=pympi.Elan.Eaf(plikeaf)
dane=annofile.get_linked_files()
dane=json.dumps(dane)
jsonArray=chilkat.CkJsonArray()
jsonArray.Load(丹麦)
i=0
时间=[]
lfile=[]
而我
您需要使用json.load(从字符串加载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'])
您需要使用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'])

列表中有多个词典。您正在尝试提取所有的
TIME\u ORIGIN
值吗?尝试使用
json
库(
import json
)将字符串解析为
dict
列表,然后您就可以使用它了。我已经尝试了json\u array=json.load(dane)其中dane代表json字符串,我在加载返回加载(fp.read()中的文件“/usr/local/cillar/python/3.7.5/Frameworks/python.framework/Versions/3.7/lib/python3.7/json/__init__;.py”第293行中的python:Traceback(最近一次调用最后一次):File“”)中得到一个错误,AttributeError:“list”对象没有属性“read”,请尝试
json.loads()
,而不是
json.loads()
回溯(最近一次调用):文件“/usr/local/cillar/python/3.7.5/Frameworks/python.framework/Versions/3.7/lib/python3.7/json/u init\uuuuuuuuuuuuuuuuuy”中的第341行(f'JSON对象必须是str、bytes或bytearray,'TypeError:JSON对象必须是str、bytes或bytearray,而不是list列表中有多个字典。您是否正在尝试提取所有的
TIME\u来源
值?请尝试
JSON
库(
import JSON
)为了将字符串解析为
dict
列表,您可以使用它。我尝试了json_array=json.load(dane),其中dane代表json字符串,我在python PyCharm中遇到一个错误:Traceback(最近一次调用last):File“”,第1行,在File中“/usr/local/cillar/python/3.7.5/Frameworks/python.framework/Versions/3.7/lib/python3.7/json/uuuu init_uuuuuuuuuu.py”,第293行,在加载返回加载(fp.read(),AttributeError:'list'对象没有属性‘read’Try
json.loads()
,而不是
json.load()
回溯(最近的最后一次调用):文件中的第1行”/usr/local/ceral/python/3.7.5/Frameworks/python.framework/Versions/3.7/lib/python3.7/json/_init_____;.py”,第341行,在loads raise TypeError中(f'json对象必须是str、bytes或bytearray,'TypeError:json对象必须是str、bytes或bytearray,而不是list