Điểm:0

Lỗi cú pháp khi truy cập dữ liệu JSON trong dữ liệu QML từ python youtube_dl

lá cờ cn

Tôi có một chức năng youtube_dl đơn giản để truy cập các liên kết tải xuống youtube tại đây,

@QtCore.Slot(str, result=str)
def getDownloadLinks(self, url):
    cố gắng:
        với youtube_dl.YoutubeDL({}) là ydl:
            kết quả = ydl.extract_info(url, download=False)
        nếu "mục nhập" trong kết quả:
            video = kết quả["mục"][0]
        khác:
            video = kết quả
        r_videos = []
        cho video trong video["formats"]:
            r_videos.append({"url": video["url"], "format": video["format"], "size": video["filesize"]})
        resRet = {"status":"true", "urls": r_videos}
        trả về str(resRet)
    ngoại trừ Ngoại lệ như e:
        resRet = {"status":"true", "error": str(e)}
        trả về str(resRet)

Và tôi đang cố truy cập nó trong tệp QML có chức năng như thế này để truy cập chức năng python này bằng cách gọi nó như thế này.

hàm getLinks(url){
    jsonString = downloadeng.getDownloadLinks(url)
    console.log(jsonString)
    var jsonObject = JSON.parse(jsonString)
    var anObject = JSON.parse(jsonObject)

    if (anObject.status == 'false') {
        //mở cửa sổ bật lên
        console.log("cửa sổ bật lên đang mở")
    } khác {
        console.log(anObject.url)
    }
}

Nhưng mỗi lần tôi gặp lỗi cú pháp như thế này SyntaxError: JSON.parse: Lỗi phân tích cú pháp chỉ ra var anObject = JSON.parse(jsonObject) đường thẳng này. Một điều nữa là tôi đang phân tích cú pháp JSON hai lần vì nó bị lỗi ở một lần phân tích nhưng hoạt động tốt ở lần phân tích thứ hai. Xin hãy giúp tôi với hai điều này.

24601 avatar
lá cờ in
YouTube khá thường xuyên thay đổi bộ chương trình của họ và thường yêu cầu các chương trình cũng phải được sửa đổi. Ngoài ra, tôi thực sự không thể giúp gì ngoại trừ việc đề nghị bạn xem qua DL-YOUTUBE PRO (sử dụng Python Phiên bản 0.1). Phiên bản miễn phí có thể được tải xuống từ trung tâm phần mềm ubuntu (phiên bản trả phí được cập nhật thường xuyên không quá đắt - chỉ vài USD). Bạn có thể muốn thử nó.
lá cờ cn
@24601, theo như tôi được biết thì đó không thực sự là vấn đề với youtube_ds. Nếu tôi trả lại một số văn bản thuần túy thay vì bất kỳ dữ liệu json nào thì nó vẫn hoạt động tốt. Tôi chỉ không thể sử dụng cách thích hợp để truyền dữ liệu json từ python sang qml.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.