2014-02-19 39 views
1

我在我的python類中寫入一個函數,它從web服務中'刪除'一首歌曲。Python:刪除函數與請求&json

在我的__init__方法中,初始化self.API,self.SONG_URL,self.RESET_URL和self.SITE_URL。刪除功能是什麼不能正常工作。

def delete_song(self,id): 
       song = self.get_song(id) 
       r = requests.delete(self.SONG_URL + str(id), data=json.dumps(song)) ##maybe not movie? 

我想我(正常工作) 'set_song_title' 功能

 def set_song_title(self,id,title): 
      song = self.get_song(id) 
      song['title'] = 'Something Else' 
      song['apikey'] = self.API 
      r = requests.put(self.SONG_URL + str(id), data = json.dumps(song)) #put 

想我會包括,如果它可以幫助後,其建模。有什麼想法嗎?也許我不應該通過歌曲?或者,也許我不應該調用get?謝謝!

+1

您需要定義「不能正常工作」的含義。你期望發生什麼,實際發生了什麼? – Lukasa

+0

同意你需要更清楚地瞭解你不期望發生的事情。你也應該注意到雖然'requests'似乎很樂意通過一個DELETE'請求來傳遞數據主體,但是用DELETE'發送數據的行爲最好是被定義爲顫抖,所以你需要確保你的主機接聽電話會在您接聽電話時做到您的期望。快速搜索(http://stackoverflow.com/questions/299628/is-an-entity-body-allowed-for-an-http-delete-request)表明一些主機可以忽略身體,有些甚至可能拒絕請求無效。 –

回答

0

你的問題完全太含糊。

也就是說,讓我想起你的兩個代碼示例的一件事是delete_song不包括apikey值。例如,我很驚訝,這是不是這樣寫的那麼

def delete_song(self, id): 
    song = self.get_song(id) 
    song['apikey'] = self.API 
    r = requests.delete(self.SONG_URL + str(id), data=json.dumps(song)) 

進一步說Maybe I shouldn't pass movie?意味着什麼對我們這些回答你的問題,因爲只有其他引用是你的第一個樣品中的註釋。