我有一个简单的 youtube_dl 函数来访问这里的 youtube 下载链接,
@QtCore.Slot(str, result=str)
def getDownloadLinks(self, url):
try:
with youtube_dl.YoutubeDL({}) as ydl:
result = ydl.extract_info(url, download=False)
if "entries" in result:
videos = result["entries"][0]
else:
videos = result
r_videos = []
for video in videos["formats"]:
r_videos.append({"url": video["url"], "format": video["format"], "size": video["filesize"]})
resRet = {"status":"true", "urls": r_videos}
return str(resRet)
except Exception as e:
resRet = {"status":"true", "error": str(e)}
return str(resRet)
我正尝试在 QML 文件中访问它,该文件具有这样的函数,可以通过像这样调用它来访问这个 python 函数。
function getLinks(url){
jsonString = downloadeng.getDownloadLinks(url)
console.log(jsonString)
var jsonObject = JSON.parse(jsonString)
var anObject = JSON.parse(jsonObject)
if (anObject.status == 'false') {
//open Popup
console.log("opening popup")
} else {
console.log(anObject.url)
}
}
但每次我都会得到像这样的语法错误,
SyntaxError: JSON.parse: Parse error
指出var anObject = JSON.parse(jsonObject)
这一行。另一件事是,我解析了两次 JSON,因为第一次解析时出错,但第二次解析时工作正常。请帮我解决这两个问题。