如何查詢1720年後出生並在1900年以前去世的所有藝術家https://musicbrainz.org?爲所有藝術家查詢https://musicbrainz.org
我需要檢索他們的ID和一些關於他們的信息。 是否有可能以JSON格式獲取數據?
如何查詢1720年後出生並在1900年以前去世的所有藝術家https://musicbrainz.org?爲所有藝術家查詢https://musicbrainz.org
我需要檢索他們的ID和一些關於他們的信息。 是否有可能以JSON格式獲取數據?
首先,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
字段只會讓您在特定年份中死亡的藝術家。
對於那些誰不想讀長的帖子,這裏是一切的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編碼您的參數值,以防止破損。 例如,在上面的示例中,將引號和開始和結束數字關閉沒有問題,但是關閉類型值將失敗。
當您不需要穩定/生產Web服務時,可以使用JSON格式:https://musicbrainz.org/doc/Development/JSON_Web_Service – JonnyJD