0

我有这个将数据插入到 funsiontables 中的示例......

该代码基本上创建了一个新表并将其 id 存储到一个变量中以支持插入、更新或删除功能。该代码来自 2010/2011 年,我认为谷歌从那时起更改了 table_id 格式,因为我在以下行中收到以下错误:

return 'INSERT INTO %d (%s) VALUES (%s)' % \
  (int(table_id), ','.join(["'%s'" % col for col in cols]), stringValues)

错误:

 (int(table_id), ','.join(["'%s'" % col for col in cols]), stringValues)
ValueError: invalid literal for int() with base 10: '1PHHo1h0tA0VxI09mAH0AH_IDNUpN5Hm-aTaAqO0'

我可以简单地将其更改为一个简单的 SQL 语句,但我确信我需要在项目的后续步骤中处理 table_id 或 row_id。所以,我想保持它已经完成的方式,如果可能的话修复它。但是,我无法理解通过 table_id "1PHHo1h0tA0VxI09mAH0AH_IDNUpN5Hm-aTaAqO0" 转换为 int 的问题......

函数 int() 支持任何整数或字符串...

有人可以帮我吗?

4

1 回答 1

2

table_id似乎不是数字整数。

您可以尝试修改代码如下:

return 'INSERT INTO %s (%s) VALUES (%s)' % \
 (table_id, ','.join(["'%s'" % col for col in cols]), stringValues)

换句话说,table_id作为一个简单的字符串使用。

于 2013-02-04T14:32:47.280 回答