我正在尝试通过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
示例中2个缺失行的PERMIT_NUMBER
是60304和60247.
我有什么想法可以进一步调查可能出现的问题?也许在我不知道的地方有一些日志或日志选项?
非常感谢任何有助于探索的帮助/想法。
答案 0 :(得分:1)
从fusiontablesService.Table.ReplaceRows(...).Upload()
上传会返回Google.Apis.Upload.ResumableUpload.ResumableUploadProgress
对象,该对象同时具有可以检查的Status
和Exception
属性。
就我而言,我得到了以下进展结果:
{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