0

我正在编写一个在 Google App Engine 上运行的 Python 应用程序,并将数据写入 Google Fusion Table。Fusion Tables API使用类似SQL 的查询来插入行。

我目前正在构建这样的 SQL 查询:

fusion_table_id = "gobblygook"
name = "John Doe"
rank = "Captain"
serial_number = 42
SQL = "INSERT INTO %s (name, rank, serial_number) VALUES (%s, %s, %s)" % (fusion_table_id, name, rank, serial_number)

显然,这并不理想。除了潜在的攻击之外,我还遇到了各种引用转义问题。

如果不使用成熟的 ORM(我不需要实际连接到数据库),构建此类 SQL 查询的最佳方法是什么?

4

1 回答 1

0

我认为格式字符串提供了一种处理 SQL 查询的好方法:

    params = {
        'fusion_table_id': 'gobblybook',
        'name': 'John Doe',
        'rank': 'Captain',
        'serial_number': 42,
        }

    SQL = "INSERT INTO {fusion_table_id} (name, rank, serial_number) VALUES ({name}, {rank}, {serial_number})".format(**params)

更多信息请参见PEP-3101

于 2012-07-14T15:15:23.327 回答