ฉันมีฟังก์ชัน youtube_dl อย่างง่ายเพื่อเข้าถึงลิงก์ดาวน์โหลด youtube ที่นี่
@QtCore.Slot(str, ผลลัพธ์=str)
def getDownloadLinks (ตัวเอง, url):
พยายาม:
ด้วย youtube_dl.YoutubeDL({}) เป็น ydl:
ผลลัพธ์ = ydl.extract_info(url, ดาวน์โหลด=เท็จ)
หาก "รายการ" เป็นผลลัพธ์:
วิดีโอ = ผลลัพธ์["รายการ"][0]
อื่น:
วิดีโอ = ผลลัพธ์
r_videos = []
สำหรับวิดีโอในวิดีโอ["รูปแบบ"]:
r_videos.append({"url": video["url"], "format": video["format"], "size": video["filesize"]})
resRet = {"สถานะ":"จริง", "urls": r_videos}
ส่งคืน str (resRet)
ยกเว้น ข้อยกเว้นเป็น e:
resRet = {"สถานะ":"จริง", "ข้อผิดพลาด": str(e)}
ส่งคืน str (resRet)
และฉันกำลังพยายามเข้าถึงมันในไฟล์ QML ซึ่งมีฟังก์ชันแบบนี้ ซึ่งเข้าถึงฟังก์ชันไพทอนนี้โดยเรียกมันแบบนี้
ฟังก์ชัน getLinks (url){
jsonString = downloadeng.getDownloadLinks(url)
console.log(jsonString)
var jsonObject = JSON.parse(jsonString)
var anObject = JSON.parse(jsonObject)
ถ้า (anObject.status == 'เท็จ') {
// เปิดป๊อปอัป
console.log("กำลังเปิดป๊อปอัป")
} อื่น {
console.log(anObject.url)
}
}
แต่ทุกครั้งที่ฉันได้รับข้อผิดพลาดทางไวยากรณ์เช่นนี้
SyntaxError: JSON.parse: ข้อผิดพลาดในการแยกวิเคราะห์
บ่งชี้ var anObject = JSON.parse(jsonObject)
บรรทัดนี้ อีกสิ่งหนึ่งคือฉันแยกวิเคราะห์ JSON สองครั้งเนื่องจากข้อผิดพลาดในการแยกวิเคราะห์หนึ่งครั้ง แต่ทำงานได้ดีในการแยกวิเคราะห์ครั้งที่สอง โปรดช่วยฉันด้วยสองสิ่งนี้