/ / Abfrage von https://musicbrainz.org für alle Künstler - json, fetch, musicbrainz

Abfragen von https://musicbrainz.org für alle Künstler - Json, Fetch, Musicbrainz

Wie kann ich nach allen Künstlern fragen, die nach 1720 geboren wurden und vor 1900 starben? https://musicbrainz.org?

Ich muss ihre IDs und einige Informationen über sie abrufen. Ist es möglich, Daten im JSON-Format abzurufen?

Antworten:

0 für die Antwort № 1

Erstens gibt Musicbrainz meines Wissens nur XML zurück, sodass Sie die Ergebnisse in JSON konvertieren müssen.

Um Ihre Frage zu beantworten, sieht es nicht so aus, als könnten Sie die gewünschten Daten in einem einzigen Anruf abrufen. (Das Folgende basiert auf dem Dokumentation zur XML-Webdienstsuche.)

Mit diesem Aufruf werden alle Künstler abgerufen, die in einem bestimmten Jahr geboren wurden:

http://musicbrainz.org/ws/2/artist/?query=begin:1720

Ich glaube, Sie müssten 180 Anrufe schreiben (einen für jedes Jahr zwischen 1720 und 1900), um die Daten zu erhalten, die Sie benötigen. Sie müssten auch Künstler, die nach 1900 gestorben sind, manuell herausfiltern, indem Sie sich die ansehen <end> Knoten innerhalb <life-span>. Das liegt daran, dass die end Feld bekommt Sie nur Künstler, die in einem bestimmten Jahr gestorben sind.


1 für die Antwort № 2

Für diejenigen, die keinen langen Beitrag lesen möchten, ist hier alles, was das OP verlangt, in nur einer Abfrage:

http://musicbrainz.org/ws/2/artist/?query=begin:[1720 TO 1900] AND end:[1720 TO 1900] AND type:"person"&fmt=json

Dies sollte perfekte Ergebnisse liefern und hatdie bestmögliche Antwort sein. - Alle Künstler, geboren nach 1720 und tot vor 1900, im JSON-Format, das ihre Ausweise und viele Informationen über sie abruft ...

Der Erklärungs- und Denkprozess:

Da Brian's derzeit akzeptierte Antwort beinhaltetAls Link zum API-Dokument kann ich sagen, dass es technisch vollständig ist, aber ich halte es nicht für die bestmögliche Antwort, auf die Spezifikation zu verweisen, und kann erheblich verbessert werden.

Erstens ist es einfach, json zurückzugeben, indem der Parameter json format hinzugefügt wird.

& fmt = json

Zweitens, während ich nicht damit rechne, wo viele sindBoybands früher, da OP nach Geburten und Todesfällen fragt, können wir den Schluss ziehen, dass sie nur an Menschen interessiert sind und nicht an Gruppen anderer Künstlertypen.

UND-Typ: "Person"

Zu diesem Zeitpunkt schlägt Brian für jedes Enddatum einen weiteren Anruf vor und filtert dann die Ergebnisse, wobei nur diejenigen berücksichtigt werden, die bis 1900 gestorben sind.

Wenn Sie dies tun würden, müssten Sie viel mehr tunAls 180 Suchanfragen schlägt die beste Antwort vor, aber eine für jede Kombination aus Geburt und Todesjahr. Technisch gesehen stinkt meine Mathematik zwischen 1720 und 1720 bis 1900-1900, aber das sind Tausende von Suchanfragen.

Aber was macht das noch so eine schreckliche SucheDies liegt daran, dass Daten manchmal entweder nur mit dem Jahr und dann manchmal mit dem Datum und dem Jahr des Monats geschrieben werden. Wenn Sie also beispielsweise nach Anfang 1929 und Ende 1900 suchen

Wenn also ein Datum geschrieben wird, das nicht nur das Jahr, sondern auch den Monat / das Datum enthält, erhalten Sie für diesen Künstler aufgrund des vollen Geburtstages keine Ergebnisse:

Ex:

ID "2b8a16a9-468f-49b0-93ea-5e6726f41643" Typ "Person" Lebensdauer
beginne "1929-11-10" Ende "1990" endete wahr

Um gute Ergebnisse nur mit dem Jahr zu erzielen, müssten Sie daher die Fuzzy-Suchsyntax hinzufügen

musicbrainz.org/ws/2/artist/?query=begin:1960~ AND end: 1990 ~ AND Typ: "Person" & fmt = json

Dies löst jedoch nichts, um das große Problem der Größe der vorgeschlagenen Suchvorgänge zu lösen. Da ich also wusste, dass es auf LUCENS basiert, habe ich beschlossen, einige LUCENS zu lernen und festzustellen, dass es eine Bereichssyntax gibt:

Daher können Sie alle oben genannten Aufgaben mit einer Abfrage ausführen:

http://musicbrainz.org/ws/2/artist/?query=begin:[1720 BIS 1900] UND Ende: [1720 bis 1900] UND Typ: "Person" & fmt = json

PS Ich empfehle, Zitate oder sogar URLs hinzuzufügenCodierung Ihrer Parameterwerte, um einen Bruch zu vermeiden. Das Auslassen von Anführungszeichen für Anfangs- und Endnummern im obigen Beispiel ist beispielsweise kein Problem, aber das Ausschalten des Typwerts schlägt fehl.