Puncte:0

Eroare de sintaxă la accesarea datelor JSON în datele QML din python youtube_dl

drapel cn

Am o funcție simplă youtube_dl pentru a accesa link-urile de descărcare youtube aici,

@QtCore.Slot(str, rezultat=str)
def getDownloadLinks(self, url):
    încerca:
        cu youtube_dl.YoutubeDL({}) ca ydl:
            rezultat = ydl.extract_info(url, download=False)
        dacă „înregistrări” în rezultat:
            videoclipuri = rezultat["intriuri"][0]
        altceva:
            videoclipuri = rezultat
        r_videos = []
        pentru videoclipuri în videoclipuri[„formate”]:
            r_videos.append({"url": video["url"], "format": video["format"], "size": video["filesize"]})
        resRet = {"status":"adevărat", "urls": r_videos}
        return str(resRet)
    cu excepția excepției ca e:
        resRet = {"status":"adevărat", "eroare": str(e)}
        return str(resRet)

Și încerc să-l accesez într-un fișier QML care are o funcție ca aceasta care accesează această funcție python apelând-o astfel.

funcția getLinks(url){
    jsonString = downloadeng.getDownloadLinks(url)
    console.log(jsonString)
    var jsonObject = JSON.parse(jsonString)
    var anObject = JSON.parse(jsonObject)

    if (anObject.status == 'false') {
        //deschideți Popup
        console.log(„deschiderea ferestrei pop-up”)
    } altfel {
        console.log(anObject.url)
    }
}

Dar de fiecare dată când primesc o astfel de eroare de sintaxă SyntaxError: JSON.parse: Eroare de analiză indicând var anObject = JSON.parse(jsonObject) această linie. Un alt lucru este că analizez JSON de două ori, deoarece greșește la o analiză, dar funcționează bine la a doua analiză. Vă rog să mă ajutați cu aceste două lucruri.

24601 avatar
drapel in
YouTube își schimbă adesea setul de programe, necesitând adesea modificarea programelor. Dincolo de asta, nu vă pot ajuta cu adevărat decât să vă sugerez să aruncați o privire la DL-YOUTUBE PRO (care folosește Python Versiunea 0.1). Versiunea gratuită poate fi descărcată din centrul de software ubuntu (versiunea plătită care este actualizată în mod regulat nu este atât de costisitoare - doar câțiva USD). Poate vrei să-l încerci.
drapel cn
@24601, nu este chiar ceva cu youtube_ds în ceea ce mă privește. Dacă returnez un text simplu în loc de orice date json, funcționează foarte bine. Pur și simplu nu pot folosi modalitatea corectă de transmitere a datelor json de la python la qml.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.