从 python youtube_dl 访问 QML 数据中的 JSON 数据时出现语法错误

从 python youtube_dl 访问 QML 数据中的 JSON 数据时出现语法错误

我有一个简单的 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,因为第一次解析时出错,但第二次解析时工作正常。请帮我解决这两个问题。

相关内容