我正在尝试使用 POST 请求将数据插入 BigQuery 表。我的应用程序创建正文以指定格式请求:
--xxx
Content-Type: application/json; charset=UTF-8
{
"configuration": {
"load": {
"sourceFormat": "NEWLINE_DELIMITED_JSON"
},
"destinationTable": {
"projectId": "some-id",
"datasetId": "dataset-id",
"tableId": "cards"
}
}
}
--xxx
Content-Type: application/octet-stream
{"board_id":1,"version":2,"card_id":1,"title":"Tytul kartki 1"}
--xxx--
但是当我使用以下方式发送这些数据时:
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
key,
scope='https://www.googleapis.com/auth/bigquery')
self.http = credentials.authorize(httplib2.Http())
headers = {'Content-Type': 'multipart/related; boundary=xxx'}
resp, content = self.http.request(url, method="POST",
body=output,
headers=headers)
服务器的响应是:
Status: {'date': 'Thu, 25 Jul 2013 12:49:06 GMT', 'status': '400', 'content-length': '205', 'content-type': 'application/json', 'server': 'HTTP Upload Server Built on Jul 12 2013 17:12:36 (1373674356)'}
Content: {
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter is missing"
}
],
"code": 400,
"message": "Required parameter is missing"
}
}
我不知道缺少什么参数。文档中唯一需要的参数是sourceUris但我想从请求正文而不是 GS 加载数据。