Python Musixmatch api响应返回200,但返回的json没有值

Python Musixmatch api响应返回200,但返回的json没有值,python,api,swagger-codegen,musixmatch,Python,Api,Swagger Codegen,Musixmatch,我正在使用MusixMatch API获取给定MusixMatch分配的专辑id的曲目列表。我正在使用的专辑id是20903197,我已经验证了它的有效性。 将其插入相册id字段 然而,当我尝试使用他们的python sdk调用它时,我得到一个响应,所有属性都没有响应,但返回200个响应。我在他们的网站上测试了它,效果很好。有没有可能他们的api坏了,或者我做错了什么 这是我当前的脚本: import time import swagger_client from swagger_client.

我正在使用MusixMatch API获取给定MusixMatch分配的专辑id的曲目列表。我正在使用的专辑id是20903197,我已经验证了它的有效性。 将其插入相册id字段

然而,当我尝试使用他们的python sdk调用它时,我得到一个响应,所有属性都没有响应,但返回200个响应。我在他们的网站上测试了它,效果很好。有没有可能他们的api坏了,或者我做错了什么

这是我当前的脚本:

import time
import swagger_client
from swagger_client.rest import ApiException
from pprint import pprint


swagger_client.configuration.api_key['apikey'] = 'API_KEY_HERE'



api_instance = swagger_client.TrackApi()
album_id = '20903197' # str | The musiXmatch album id
format = 'json' # str | output format: json, jsonp, xml. (optional) (default to json)
callback = 'callback_example' # str | jsonp callback (optional)
f_has_lyrics = 'f_has_lyrics_example' # str | When set, filter only contents with lyrics (optional)
page = 3.4 # float | Define the page number for paginated results (optional)
page_size = 3.4 # float | Define the page size for paginated results.Range is 1 to 100. (optional)

try:
    api_response = api_instance.album_tracks_get_get(album_id, format=format, callback=callback, f_has_lyrics=f_has_lyrics, page=page, page_size=page_size)
    pprint(api_response)
except ApiException as e:
    print "Exception when calling TrackApi->album_tracks_get_get: %s\n" % e
我得到的回应是:

{'message': {'body': {'track_list': [{'album_coverart_100x100': None,
                                      'album_coverart_350x350': None,
                                      'album_coverart_500x500': None,
                                      'album_coverart_800x800': None,
                                      'album_id': None,
                                      'album_name': None,
                                      'artist_id': None,
                                      'artist_mbid': None,
                                      'artist_name': None,
                                      'commontrack_id': None,
                                      'commontrack_vanity_id': None,
                                      'explicit': None,
                                      'first_release_date': None,
                                      'has_lyrics': None,
                                      'has_subtitles': None,
                                      'instrumental': None,
                                      'lyrics_id': None,
                                      'num_favourite': None,
                                      'primary_genres': None,
                                      'restricted': None,
                                      'secondary_genres': None,
                                      'subtitle_id': None,
                                      'track_edit_url': None,
                                      'track_id': None,
                                      'track_isrc': None,
                                      'track_length': None,
                                      'track_mbid': None,
                                      'track_name': None,
                                      'track_name_translation_list': None,
                                      'track_rating': None,
                                      'track_share_url': None,
                                      'track_soundcloud_id': None,
                                      'track_spotify_id': None,
                                      'track_xboxmusic_id': None,
                                      'updated_time': None}]},
             'header': {'available': 1.0,
                        'execute_time': 0.0039160251617432,
                        'status_code': 200.0}}}

要找到此问题的原因,需要查看由生成的swagger客户端代码:对于同步请求,请查看api_client.py->u call_api,服务返回的结果默认为反序列化,从而导致空负载

要修复此问题,需要通过设置参数\u preload\u content=False来禁用反序列化

复制步骤:

  • 以MusixMatch服务的swagger.json为例

  • 用于基于swagger.json生成python客户端

  • 安装自动生成的模块swagger客户端

  • 运行代码

  • import-swagger\u客户端
    从swagger_client.rest导入ApiException
    导入json
    configuration=swagger\u client.configuration()
    配置.api_键['apikey']='..'
    api_实例=swagger_client.TrackApi(swagger_client.ApiClient(配置))
    相册编号=20903197
    尝试:
    api\U response=api\U instance.album\U tracks\u get\u get(album\u id,\u preload\u content=False)
    结果=json.loads(api_response.data)
    打印(结果)
    APIE除外:
    打印(“调用TrackApi->album\u tracks\u get\u get时出现异常:%s\n”%e)
    #结果:{u'message':{u'body':{u'track_list':[{u'track':{u'track_share_url]:u'https://www.musixmatch.com/lyrics/Kaskade-feat-Ilsey/Disarm-You?utm_source=application&utm_campaign=api&utm_medium=1982%3A1409612089803“,u'album_name':u'Disarmed You(feat.Ilsey)”,u'has_subscriptions':1,u'track_name':u'Disarmed You(feat.Ilsey)“,你的主要流派:{u'音乐流派{u列表:{u'音乐流派}:{u'音乐流派{u家长id:34,u'音乐流派{u名称}扩展:'u'舞蹈',u'音乐流派{u虚荣':u'舞蹈',u'音乐流派{u id:17,u'音乐流派{u名称:'u'舞蹈'}”,u'album_id':20903197,u'explicit':0,u'has_歌词:1,u'Artister_name':u'Kaskade feat.Ilsey,u'track_id':84384445,u'Importional':0,u'updated_time':u'2015-10-16T17:38:45Z,u'track_评级:21,u'commontrack_id':46959082,u'restricted':0,u'num_Favorite':773,u'Artister_id':28754430,u'track_名称翻译清单:[],u'has\u richsync':1,u'track\u edit\u url':u'https://www.musixmatch.com/lyrics/Kaskade-feat-Ilsey/Disarm-You/edit?utm_source=application&utm_campaign=api&utm_medium=1982%3A1409612089803“}}]},u'header':{u'available':1,u'status_code':200,u'execute_time':0.0088551044464111}}
    
    要找到此问题的原因,需要查看由生成的swagger客户端代码:对于同步请求,请查看api_client.py->_call_api,默认情况下,服务返回的结果是反序列化的,这将导致空负载

    要修复此问题,需要通过设置参数\u preload\u content=False来禁用反序列化

    复制步骤:

  • 以MusixMatch服务的swagger.json为例

  • 用于基于swagger.json生成python客户端

  • 安装自动生成的模块swagger客户端

  • 运行代码

  • import-swagger\u客户端
    从swagger_client.rest导入ApiException
    导入json
    configuration=swagger\u client.configuration()
    配置.api_键['apikey']='..'
    api_实例=swagger_client.TrackApi(swagger_client.ApiClient(配置))
    相册编号=20903197
    尝试:
    api\U response=api\U instance.album\U tracks\u get\u get(album\u id,\u preload\u content=False)
    结果=json.loads(api_response.data)
    打印(结果)
    APIE除外:
    打印(“调用TrackApi->album\u tracks\u get\u get时出现异常:%s\n”%e)
    #结果:{u'message':{u'body':{u'track_list':[{u'track':{u'track_share_url]:u'https://www.musixmatch.com/lyrics/Kaskade-feat-Ilsey/Disarm-You?utm_source=application&utm_campaign=api&utm_medium=1982%3A1409612089803“,u'album_name':u'Disarmed You(feat.Ilsey)”,u'has_subscriptions':1,u'track_name':u'Disarmed You(feat.Ilsey)“,你的主要流派:{u'音乐流派{u列表:{u'音乐流派}:{u'音乐流派{u家长id:34,u'音乐流派{u名称}扩展:'u'舞蹈',u'音乐流派{u虚荣':u'舞蹈',u'音乐流派{u id:17,u'音乐流派{u名称:'u'舞蹈'}”,u'album_id':20903197,u'explicit':0,u'has_歌词:1,u'Artister_name':u'Kaskade feat.Ilsey,u'track_id':84384445,u'Importional':0,u'updated_time':u'2015-10-16T17:38:45Z,u'track_评级:21,u'commontrack_id':46959082,u'restricted':0,u'num_Favorite':773,u'Artister_id':28754430,u'track_名称翻译清单:[],u'has\u richsync':1,u'track\u edit\u url':u'https://www.musixmatch.com/lyrics/Kaskade-feat-Ilsey/Disarm-You/edit?utm_source=application&utm_campaign=api&utm_medium=1982%3A1409612089803“}}]},u'header':{u'available':1,u'status_code':200,u'execute_time':0.0088551044464111}}