2016-04-13 5 views
0

verzeihen Sie mir, wenn wenn direkt damit herauskommen, aber Python treibt mich Nüsse an etwas, was ganz einfach zu sein schien.Parsing Fanart API v3 mit python3

Kurz notiert Ich schreibe eine Erweiterung für ein Musikvideo scrapper, die für den Fanart Hintergrund verantwortlich ist. Hier ist die URL: github.com/MViDLibraryToolKit/.../APICaller

So konnte ich die Fanart.tv API aufrufen und Empfangen des rechten json Antwort. Mein Problem ist, dass ich zu dumm bin, um die URLs unter dem Element "artistbackground" zu sammeln

Ich suche im Internet und fand einen sehr ähnlichen Beitrag hier bei stackoverflow, aber unglücklicherweise war dies in Bezug auf Python2, API V2 und eine andere Kategorie an fanart.tv, also konnte ich nichts daraus machen. Here it was

Wie auch immer, hier ist mein armes Versuchen URLs zu sammeln zur Liste

# --------------------- 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) 

LIBS I ... geladen

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

Der Rest aus dem Code, den Sie an meinem GitHub Link finden . Bitte helfen Sie mir, es macht mich verrückt ^^

Mit freundlichen Grüßen

P. S. Bitte entschuldigen Sie mein Englisch, ich kam aus Deutschland :)

Antwort

0

Ich glaube, ich habe es endlich bekommen.

# 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) 

Nach einigen hourse Schlaf unter reallized ich, dass „json.loads“ die Antwort auf regelmäßige Python-Objekte deserialisiert. Korrigiere mich, wenn ich falsch liege. Wie auch immer, es funktioniert endlich!