使用API​​诊断Google Fusion Table更新以上传CSV问题

时间:2016-12-08 22:00:11

标签: c# google-fusion-tables

我正在尝试通过API使用CSV数据诊断更新Google Fusion Tables的问题。一切似乎都能正常运行代码方面,没有报告错误,但数据并没有反映出这些变化。我有什么想法可以诊断出了什么问题?

我一直在使用Google.Apis.Fusiontables.v2 C# libraries(我尝试过的最新版本为v1.27.1.833)来每天更新融合表。这个过程无缝地工作了很长一段时间,但现在似乎不再起作用了。我怀疑这个过程已经被打破了一个月或更长时间。

一切似乎都在代码方面起作用,没有报告错误。我也一直在Visual Studio中调试这个过程而没有出现任何问题 - 它似乎只是在客户端工作。

如果它有用,我正在使用的C#方法是:

fusiontablesService.Table.ReplaceRows(tableId, stream, "application/octet-stream").Upload();

我尝试更新的表格是 - https://fusiontables.google.com/DataSource?docid=1ndrFm1g0iZpz5gszjz5Ij9r_KiQbNYRXVM2JNfv3

UpdatedUtc列表示正在通过一些更新的行,但不是全部。

如果我将我的CSV流导出到物理文件并通过网络用户界面手动创建新的Fusion Table,这将完美运行并显示我希望在那里丢失的所有数据。

以下是压缩的CSV文件,以防有用 - http://www.paydirt.co.nz/stackoverflow/GoldPermits.zip

这是测试Fusion表我手动将CSV文件导入 - https://www.google.com/fusiontables/DataSource?docid=1Udnre88O8e1zokvnhrkmqdY7BbYD2OQtELdyz3uG

实时表更新中缺少数据的示例: enter image description here

与从相同数据创建的测试表相比: enter image description here

示例中2个缺失行的PERMIT_NUMBER是60304和60247.

我有什么想法可以进一步调查可能出现的问题?也许在我不知道的地方有一些日志或日志选项?

非常感谢任何有助于探索的帮助/想法。

1 个答案:

答案 0 :(得分:1)

fusiontablesService.Table.ReplaceRows(...).Upload()上传会返回Google.Apis.Upload.ResumableUpload.ResumableUploadProgress对象,该对象同时具有可以检查的StatusException属性。

就我而言,我得到了以下进展结果:

{Google.Apis.Upload.ResumableUpload.ResumableUploadProgress}
    BytesSent: 10485760
    Exception: {"Google.Apis.Requests.RequestError\r\nContent has a different number of columns than the table (line 1). [400]\r\nErrors [\r\n\tMessage[Content has a different number of columns than the table (line 1).] Location[ - ] Reason[badImportNumColumnsMismatch] Domain[fusiontables]\r\n]\r\n"}
    Status: Failed