2013-09-23 64 views
1

我想使用Python請求發送數據到流星應用程序。我使用meteor-collectionapi來展示我的收藏。Python請求和流星/ MongoDB collectionapi更新不起作用

我可以使用curl更新我的收藏,像這樣:

curl -H "X-Auth-Token: 3243EEREFADfdsafkjghk432hljsfDS3" -X PUT -d "{\"\$set\":{\"level\":\"32\"}}" http://localhost:3000/collectionapi/containers/WjyuFkRdmq78qyzR7` 

我想使用的要求在Python中執行相同的命令。以下是我已經把代碼:

import requests 
import json 
url = 'http://localhost:3000/collectionapi/containers/WjyuFkRdmq78qyzR7' 
headers = {'X-Auth-Token': '3243EEREFADfdsafkjghk432hljsfDS3'} 
payload = {'\$set':{'level':'43'}} 
r = requests.post(url, data=json.dumps(payload), headers=headers) 

當我運行這個$set沒有得到正確地傳遞和POST無法正常工作(它創建集合在一個新的對象,而不是更新現有目的)。我嘗試過以各種方式逃避它,但似乎沒有任何工作正常。如果我不逃避$set我得到:

payload = {'$set':{'level':'38'}} 
{"error":"Error: key $set must not start with '$'"} 

回答

2

在你cURL命令你沒有做一個POST,你正在做一個PUT。

試着改變你的請求命令

r = requests.put(url, data=json.dumps(payload), headers=headers) 
+1

不知怎的,我錯過了。 > _ < –

+0

這是問題,謝謝! – Robottamer