1 回答

TA贡献1831条经验 获得超4个赞
JavaScript数据大多为JSON格式,因此您可以使用python模块json将其转换为python s dictionary。
作为示例数据,在"videos[0] = "创建正确的JSON数据之后,您可以data = json.loads(stringg)用来创建字典-然后可以获取ie。data['wmv']['size']
data = '''{
"wmv": {
"file": "wmv/01.wmv",
"name": "01",
"duration": 502,
"size": "195.1MB",
"wid": 854,
"hgt": 480,
"st": "1557499029",
"et": "1557502629",
"hs": "a0cfdef3b8b9e3dea576368a5bfbaef9",
"caps": []
},
"h264": {
"file": "h264/01.mp4",
"name": "01",
"duration": 502,
"size": "73.9MB",
"wid": 854,
"hgt": 480,
"st": "1557499029",
"et": "1557502629",
"hs": "32901a1870d0b32458b465ac9c3d6cad",
"caps": [{
"file": "001.jpg",
"fs": {
"st": "1557499029",
"et": "1557502629",
"hs": "5b328642a84fa6406bda527c18e46c27"
},
"tn": {
"st": "1557499029",
"et": "1557502629",
"hs": "0a4ad7d0edf1b92538b8127f8e297c41"
}
}, {
"file": "002.jpg",
"fs": {
"st": "1557499029",
"et": "1557502629",
"hs": "4390c0d9b321b5e86c88cb8ca5e56ede"
},
"tn": {
"st": "1557499029",
"et": "1557502629",
"hs": "9cf83158268379df660d6d01750a047c"
}
}]
}
}'''
import json
data = json.loads(data)
print(data['wmv']['size'])
# 195.1MB
如果每个变量都是一行,则可以用于split('\n')获取行,然后用于split('=')获取键和值。
然后,你必须要是值仅开始检查用{或[在使用json。其他值可以是普通字符串,因此不需要json-它可能只需要删除"。
Content = '''// <![CDATA[
devicetype = "computer";
isios = false;
videocdn = "media";
videopath = "updates/na/vid01";
poster = {"file": "preview/vidsplash.jpg","st": "1557499029","et": "1557502629","hs": "f3ad16f42fec5224d323915cdfbf43ed"};
attachname = "some-video-00001234";'''
import json
results = {}
for line in Content.split('\n'):
if ' = ' in line:
line = line[:-1] # remove `;`
key, val = line.split(' = ', 1)
if val.startswith( ('[', '{') ):
results[key] = json.loads(val)
elif val.startswith('"'):
val = val[1:-1] # remove `"`
results[key] = val
elif val == 'false':
results[key] = False
elif val == 'true':
results[key] = True
print(results['devicetype'])
print(results['isios'])
print(results['videocdn'])
print(results['poster']['file'])
# computer
# False
# media
# preview/vidsplash.jpg
添加回答
举报