Drive API - 插入文件时出现Parse Error

时间:2015-08-14 19:53:34

标签: python google-drive-api python-requests

我需要在带有requests python库的Google云端硬盘中创建一个新文件。

r = requests.post(
    'https://www.googleapis.com/drive/v2/files',
    headers={
        'Content-type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer %s' % access_token
    }
)

此代码可以成功创建一个文件,其中所有值都设置为默认值,但如果我尝试例如设置文件的标题:

r = requests.post(
    'https://www.googleapis.com/drive/v2/files',
    data={"title": "Foo"},
    headers={
        'Content-type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer %s' % self.access_token
    }
)

然后服务器以400 Bad Request和json响应响应:

{
  "error": {
    "code": 400, 
    "message": "Parse Error", 
    "errors": [
      {
        "domain": "global", 
        "message": "Parse Error", 
        "reason": "parseError"
      }
    ]
  }
}

我做错了什么以及如何解决?

1 个答案:

答案 0 :(得分:1)

事实证明,当发送json请求时,data参数应该是序列化的json对象。

r = requests.post(
    'https://www.googleapis.com/drive/v2/files',
    data=json.dumps({"title": "Foo"}),
    headers={
        'Content-type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer %s' % self.access_token
    }
)