【发布时间】:2014-07-02 18:32:53
【问题描述】:
我正在使用 Google APIs Client Library for Python 更新 Fusion Table 并使用 Fusion Tables API v1 向 Fusion Table 添加行。当我使用 SQL INSERT 查询方法一次做一行时,我可以成功地做到这一点。我还希望能够使用importRows 方法更新融合表。
我从文件“testCsv.csv”开始,并希望将其完全导入现有的 Fusion Table。这样做有一个很好的概念解释here。
概念示例说明 API 是否接受图像,但要更新 Fusion Table,类型必须为“application/octet-stream”。
我尝试使用importRows 方法和以下代码(注意:service 是经过身份验证的 API 连接):
from apiclient.discovery import build
from apiclient.http import MediaFileUpload
.
.
.
mediaCsv=MediaFileUpload(csvFileName, mimetype='application/octet-stream')
request = service.table().importRows(tableId=wrrTweetsID, media_body=mediaCsv,
startLine=1, encoding='auto-detect')
response = request.execute()
当我执行此代码时,我会收到此错误消息:
raise HttpError(resp, content, uri=self.uri)
apiclient.errors.HttpError: <HttpError 500 when requesting
"https://www.googleapis.com/upload/fusiontables/v1/tables/--table_id--/import?uploadType=media&alt=json&startLine=1&encoding=auto-detect"
returned "Backend Error">
我的问题是,我是否需要对.csv 做一些事情才能将其转换为application/octet-stream?还是在使用这种方法时我还缺少什么?
【问题讨论】:
标签: python google-api google-fusion-tables google-api-python-client