2017-03-02 119 views

回答

0

首先,Musicbrainz只返回XML,據我所知,所以你必須將結果轉換爲JSON。

要回答你的問題,它看起來不像你能夠在一次調用中獲得你想要的數據。 (以下是基於關閉XML Web Service Search documentation

這個調用將檢索誰出生在一年中所有的藝術家:

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

我相信你需要寫180個電話(一個用於每年1720至1900年)獲取您需要的數據。您還需要通過查看<life-span>內的<end>節點,手動過濾1900年後死亡的藝術家。這是因爲end字段只會讓您在特定年份中死亡的藝術家。

1

對於那些誰不想讀長的帖子,這裏是一切的OP中只有一個查詢要求:

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

這應返回完美的效果,並且一定是最好的答案可能。 - 所有的藝術家,1720以後出生和1900年以前死,JSON格式,它檢索其ID,以及大量的關於他們的信息......

的解釋和思考過程:

由於Brian的目前接受的答案包括一個API文檔的鏈接,我可以說它在技術上是完整的,但我不認爲指出規範是最好的答案,並且可以大大改善。

首先,通過添加json格式參數很容易返回json。

& FMT = JSON

其次雖然我不估計那裏有很多男孩樂團在當天回來,因爲OP詢問有關出生和死亡,我們可以得出結論,他們有興趣只人們而不是其他類型的藝術家。

,然後鍵入:「人」

在這一點布賴恩提出另一種號召每個結束日期,然後過濾結果只取那些誰死在1900年

如果你沒有你需要做180次以上的搜索才能得到最好的答案,但是每個出生和每個死亡年份的組合都有一個,所以技術上1720到1720,一直到1900-1900,我的數學很臭,但數千搜索。

不過,令這仍然如此可怕的搜索是因爲有時日期要麼只有一年寫的,然後有時候用年月日和年寫的,因此,例如,如果你搜索開始1929年年底1900

因此,如果一個日期寫不僅包括一年,但月/日,你不會得到,因爲完整的生日了該藝術家的任何結果:

例如:

ID「2b8a16a9-468f-49b0 -93ea-5e6726f41643「類型」人「壽命
開始「1929年11月10日」 結束「1990」 結束真實

因此,爲了獲得僅使用一年,你將需要添加的模糊搜索語法

什麼好結果

musicbrainz.org/ws/2/artist/?query=begin:1960~和端部:1990年〜AND 類型: 「人」 & FMT = JSON

但是,這並沒有什麼解決的T大問題他搜索的幅度建議,所以知道它的呂桑基於我決定學習一些呂桑,並實現有範圍語法:

因此,你可以做到以上的有一個查詢:

http://musicbrainz.org/ws/2/artist/?query=begin:[1720 1900 ]和 結束:1720年到1900年],然後鍵入:「人」 & FMT = JSON

PS我建議她先加上引號,甚至URL編碼您的參數值,以防止破損。 例如,在上面的示例中,將引號和開始和結束數字關閉沒有問題,但是關閉類型值將失敗。