Python新手查询含冒号的PostgreSQL表报错求解
解决PostgreSQL带冒号表名的Python查询写法问题
问题出在SQL标识符的引号处理和Python字符串转义上,PostgreSQL中包含特殊字符(比如冒号)的表名必须用双引号包裹,同时要保证Python字符串能正确解析这条SQL语句。以下是几种正确写法:
用单引号定义Python字符串,直接在SQL里用双引号包裹表名:
postgreSQL_select_Query = 'select * from "abbott:Account" limit 100;'用双引号定义Python字符串,转义内部的双引号:
postgreSQL_select_Query = "select * from \"abbott:Account\" limit 100;"用三引号字符串,内部双引号无需转义:
postgreSQL_select_Query = '''select * from "abbott:Account" limit 100;'''
关键原因
PostgreSQL规定,当标识符(表名、列名等)包含特殊字符或需要区分大小写时,必须用双引号包裹。你之前的写法要么引号转义错误,要么没有正确给表名加上双引号,导致Python解析字符串时触发语法错误,或者SQL执行时无法识别目标表名。
内容的提问来源于stack exchange,提问作者user23956254
相关产品推荐
相关产品推荐

