使用python3解析Fanart API v3

时间:2016-04-13 08:27:15

标签: python json parsing

请原谅我,如果直接用它,但是python让我疯狂的看起来很简单。

简而言之 我正在写一个音乐视频剪贴簿的扩展程序,它负责获取粉丝背景。 这是URL: github.com/MViDLibraryToolKit/.../APICaller

所以我能够调用Fanart.tv API并接收正确的json响应。我的问题是,我愚蠢地收集元素下的网址" artistbackground"

我搜索互联网并在stackoverflow发现了一个非常相似的帖子,但不幸的是这涉及到python2,API V2和fanart.tv上的一个不同的类别,所以我无法使用它。 Here it was

无论如何,这是我的穷人尝试收集列表的网址

# --------------------- 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。请原谅我的英语,我来自德国:)

1 个答案:

答案 0 :(得分: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对象的响应。如果我错了,请纠正我。 无论如何,它终于有效了!