La respuesta de musixmatch api devuelve 200 pero devuelve json con valores None

Applekiwis

Estoy usando la API MusixMatch para obtener una lista de pistas con una identificación de álbum asignada por musixmatch. La identificación del álbum que estoy usando es 20903197 y he validado que funciona. https://playground.musixmatch.com/#!/Track/get_album_tracks_get conecte eso en el campo album_id

Sin embargo, cuando intento llamarlo usando su python sdk, obtengo una respuesta con Ninguno para todos los atributos, pero devuelvo una respuesta de 200. Lo probé en el swagger de su sitio web y funciona bien. ¿Es posible que su API esté rota o estoy haciendo algo mal?

Este es mi script actual:

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

y estoy recibiendo esta respuesta:

{'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}}}
Vladimir

Para encontrar la razón por la que este problema necesita mirar el código de swagger-client generado por Swagger Editor : para una solicitud de sincronización, mire api_client.py -> __call_api , el resultado devuelto por el servicio se deserializa de forma predeterminada, lo que conduce a una carga útil vacía.

Para solucionarlo, debe deshabilitar la deserialización configurando el parámetro _preload_content = False .

Reproducir pasos:

  1. Tome swagger.json de MusixMatch-service en github

  2. Utilice Swagger Editor para generar python-client basado en swagger.json

  3. Instale el módulo swagger-client autogenerado

  4. Ejecutar código

import swagger_client
from swagger_client.rest import ApiException
import json


configuration = swagger_client.Configuration()
configuration.api_key['apikey'] = '..'

api_instance = swagger_client.TrackApi(swagger_client.ApiClient(configuration))
album_id = 20903197

try:
    api_response = api_instance.album_tracks_get_get(album_id, _preload_content=False)
    result = json.loads(api_response.data)
    print(result)
except ApiException as e:
    print("Exception when calling TrackApi->album_tracks_get_get: %s\n" % e)

# result: {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'Disarm You (feat. Ilsey)', u'has_subtitles': 1, u'track_name': u'Disarm You (feat. Ilsey)', u'primary_genres': {u'music_genre_list': [{u'music_genre': {u'music_genre_parent_id': 34, u'music_genre_name_extended': u'Dance', u'music_genre_vanity': u'Dance', u'music_genre_id': 17, u'music_genre_name': u'Dance'}}]}, u'album_id': 20903197, u'explicit': 0, u'has_lyrics': 1, u'artist_name': u'Kaskade feat. Ilsey', u'track_id': 84384445, u'instrumental': 0, u'updated_time': u'2015-10-16T17:38:45Z', u'track_rating': 21, u'commontrack_id': 46959082, u'restricted': 0, u'num_favourite': 773, u'artist_id': 28754430, u'track_name_translation_list': [], u'has_richsync': 1, u'track_edit_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}}}

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

La Solicitud GET de Spring Boot proporciona un estado 200 OK, pero Postman devuelve "ø" como cuerpo de respuesta

Devuelve ArrayList <String> en la entidad de respuesta con estado 200

Api devuelve la cadena de imagen base64 como respuesta directa, no como respuesta json, cómo manejar en androidStudio

La API de Google devuelve valores incorrectos

¿La función de respuesta de Laravel solo devuelve 200?

El servidor devuelve aleatoriamente una respuesta vacía con el código de estado 200

La API no devuelve la respuesta

La respuesta de Symfony json devuelve contenido dos veces

La respuesta de Symfony json devuelve contenido dos veces

Ответ API Musixmatch, возвращающий 200, но возвращающий json без значений None

La solicitud de publicación devuelve una respuesta de cuerpo vacío (200-none) Python

Javascript: el objeto de filtro devuelve los valores correctos pero con la estructura incorrecta

La función de Azure nodejs devuelve 200 OK con respuesta vacía

Json Deserializer en C # devuelve valores incorrectos de la respuesta de solicitud de Json

Jtable devuelve Error sin carga de mensaje. La respuesta devuelve 200

La API de NodeJs con Angular no devuelve el resultado JSON

La llamada a la API REST de Laravel devuelve datos ficticios con estado 200

La publicación http de Angular 2 devuelve 200 pero no se devuelve ninguna respuesta

La entidad de respuesta de Spring Boot no devuelve JSON

prueba el controlador api que devuelve la respuesta json

Devuelve JSON como respuesta de la API web

Cómo arreglar la solicitud de la API de REDCap que devuelve 403 con Javascript pero funciona con otros lenguajes

Cómo arreglar la solicitud de la API de REDCap que devuelve 403 con Javascript pero funciona con otros lenguajes

Cargar archivo con la solicitud POST de HttpClient devuelve 200, pero el archivo no se cargó

Script personalizado con <amp-script> que no devuelve la altura pero devuelve otros valores

¿Cuál es la mejor manera de manejar una respuesta de la API JSON que devuelve 200 independientemente del error o no?

nginx devuelve 200 pero respuesta vacía

Devuelve la respuesta JSON de la función Python

MassTransit Saga: devuelve el estado actual con la respuesta de la API REST

TOP Lista

CalienteEtiquetas

Archivo