1

我正在尝试使用 Python 请求将数据发送到 Meteor 应用程序。我正在使用 meteor-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 '$'"}
4

1 回答 1

2

在您的 cURL 命令中,您不是在执行 POST,而是在执行 PUT。

尝试将您的请求命令更改为

r = requests.put(url, data=json.dumps(payload), headers=headers)
于 2013-09-24T12:42:33.857 回答