簡體   English   中英

錯誤無法解碼JSON對象

[英]Error No JSON object could be decoded

我正在使用python 2.7.2的這段代碼有什么問題我正在嘗試創建一個python腳本,該腳本可以自動查找歌曲的歌詞,這是我一直在從事的項目的

import codecs
import json
import sys
import urllib
import urllib2

import bs4  

def extract_lyrics(page):
    """Extract lyrics text from given lyrics.wikia.com html page."""
    soup = bs4.BeautifulSoup(page)
    result = []
    for tag in soup.find('div', 'lyricbox'):
        if isinstance(tag, bs4.NavigableString):
            if not isinstance(tag, bs4.element.Comment):
                result.append(tag)
        elif tag.name == 'br':
            result.append('\n')
    return "".join(result)

artist = raw_input("Enter artist:")
song = raw_input("Enter song:")

query = urllib.urlencode(dict(artist=artist, song=song, fmt="realjson"))
response = urllib2.urlopen("http://lyrics.wikia.com/api.php?" + query)
data = json.load(response)

if data['lyrics'] != 'Not found':

    print(data['lyrics'])

    lyrics = extract_lyrics(urllib2.urlopen(data['url']))
    filename = "[%s] [%s] lyrics.txt" % (data['artist'], data['song'])
    with codecs.open(filename, 'w', encoding='utf-8') as output_file:
        output_file.write(lyrics)
    print("written '%s'" % filename)
else:
    sys.exit('not found')

它給了我這個錯誤

    Traceback (most recent call last):
  File "C:\Users\elaya\Desktop\Song.py", line 26, in <module>
    data = json.load(response)
  File "C:\Python27\lib\json\__init__.py", line 291, in load
    **kw)
  File "C:\Python27\lib\json\__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

請幫我

您應該查看響應實際是什么。 當我嘗試使用這些參數的URL時,會得到一個mediawiki幫助頁面。 通讀后,您似乎需要提供一個帶有lyrics值的action參數。

query = urllib.urlencode(dict(action='lyrics', artist=artist, song=song, fmt="realjson"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM