Python-从musixmatch json响应中获取歌词
在Python中,我试图解析来自musixmatch api的json响应,但我在理解如何访问给定信息时遇到了困难,请帮助! 如果必要的话,我可以稍后发布JSON响应,但这是一个相当多的文本Python-从musixmatch json响应中获取歌词,python,json,python-3.x,musixmatch,Python,Json,Python 3.x,Musixmatch,在Python中,我试图解析来自musixmatch api的json响应,但我在理解如何访问给定信息时遇到了困难,请帮助! 如果必要的话,我可以稍后发布JSON响应,但这是一个相当多的文本 import json from os.path json, dirname from musixmatch import Musixmatch musixmatch = Musixmatch(<api key>) lyrics = musixmatch.matcher_lyrics_get
import json
from os.path json, dirname
from musixmatch import Musixmatch
musixmatch = Musixmatch(<api key>)
lyrics = musixmatch.matcher_lyrics_get('Grenade', 'Bruno Mars')
print (lyrics)
for item in jsonLyric['message']:
for thing in item['body']:
for stuff in thing['lyrics']:
print(stuff['lyrics_body'])
正如我们所看到的,JSON响应是一个字典,里面有许多其他字典,但我们想要找到的是包含“歌词\正文”及其值的正文字典 我们怎么能这样做?其实很简单。在一行中,我们可以继续调用字典并传递包含另一个键的键,因此,例如,我们要访问的第一个字典是整个JSON响应,因此我们可以调用包含JSON响应的歌词变量,然后我们传递我们要访问的键,在本例中为“message”,歌词[“message”] 你做这件事的方式也很简单。您只需要遍历集成字典中的每个键
for message in lyrics:
for body in lyrics[message]:
if body == "body":
for lyric in lyrics[message][body]:
for lyrBod in lyrics[message][body][lyric]:
if lyrBod == "lyrics_body":
print(lyrics[message][body][lyric][lyrBod])
正如你所见,这是同样的事情,但只是需要更长的时间
希望这有帮助您的输出是什么,预期输出是什么?知道JSON响应是什么也有助于发布我试图解析的输出。我相信它的JSON是基于它的结构,但我可能是错的预期输出是什么?什么是
jsonLyric
?为什么不直接做歌词['message']['body']['lymps']['lymps\u body']?
print(lyrics["message"]["body"]["lyrics"]["lyrics_body"])
for message in lyrics:
for body in lyrics[message]:
if body == "body":
for lyric in lyrics[message][body]:
for lyrBod in lyrics[message][body][lyric]:
if lyrBod == "lyrics_body":
print(lyrics[message][body][lyric][lyrBod])