2016-04-13 38 views
0

原諒我,如果直接出來,但python驅使我瘋了似乎很簡單的東西。解析Fanart API v3與python3

簡而言之 我正在爲一個負責獲取fanart背景的musicvideo scrapper寫擴展名。 這裏是網址: github.com/MViDLibraryToolKit/.../APICaller

所以我能夠調用Fanart.tv API並接收正確的json響應。我的問題是,我愚蠢收集元素「artistbackground」

我搜索互聯網,發現一個非常類似的帖子在這裏在stackoverflow,但不幸的是這是關於python2,API V2和一個不同的類別在fanart.tv,所以我無法使用它。 Here it was

不管怎麼說,這是我可憐的嘗試蒐集的URL列表

# --------------------- Response Verarbeitung 

# Ausgabe zwecks Debug 
# print(fanartTVresp) 
# http://webservice.fanart.tv/v3/music/albums/ba853904-ae25-4ebb-89d6-c44cfbd71bd2?api_key=fdadba00cfaaf3621eaa748669256a9e&client_key=dce01d75553d7e3fbc2ad742aaf5d371 

# zu befüllende Liste 
url_list = [] 

# lade Web-Response 
json_response = json.loads(fanartTVresp) 

# durch Element artistbackground loopen 

for artistbackground in json_response: 
    url = urllib.parse.quote(['url'], ':/') 
    if url: 
     url_list.append(url) 
print(url_list) 

我裝的庫...

import musicbrainzngs 
import urllib 
import json 
import socket 
from pprint import pprint 
from urllib.parse import quote 

從代碼的其餘部分,你可以找到我的github上的鏈接。請幫助我,這讓我瘋狂^^

親切的問候

p.s.請原諒我的英語,我來自德國:)

回答

0

我想我終於明白了。

# URL List for background images 
url_list = [] 

# set only for debug/value came from powershell runtime later 
location = os.path.abspath('C:/temp') 


# decode json 
json_response = json.loads(fanartTVresp.decode()) 

# set string objects 

bgitem = json_response["artistbackground"] 

bgcoverurl = json_response["artistbackground"][0]["url"] 

# iterating items and collect 
for bgcoverurl in bgitem: 
    url_list.append(bgcoverurl) 
    print(url_list) 

經過幾個小時的睡眠,我重新確認了「json.loads」反序列化了對常規python對象的響應。如我錯了請糾正我。 無論如何,它終於有效!