2 回答
TA贡献1876条经验 获得超7个赞
复杂性取决于给定输入的类型。如果你确定输入的类型,即是字符串还是数字,你可以直接采用Khan 的 Answer,字符串格式更好。几个例子:
# Method 1(f-string) - if a number
a = f'select * from student_info where Student_ID = {studentid}'
# if string
a = f"select * from student_info where Student_ID = '{studentid}'"
否则,如果给我们的输入类型是动态的,即可以是字符串或数字,那么这里有一个适合于此的单行:
a = 'select * from student_info where Student_ID = ' + (studentid if studentid.isnumeric() else "'"+studentid+"'")
仅当没有给出其他条件时,即仅当串联不会产生不必要的复杂性时,上述情况才是可能的。您还可以使用 f-string:
a = f'''select * from student_info where Student_ID = {(studentid if studentid.isnumeric() else "'"+studentid+"'")}'''
TA贡献1818条经验 获得超3个赞
如果studentid
是字符串,您的 sql 语句(或a
变量)应该类似于:
a =''' select * from student_info where Student_ID = '{studentid}'; '''.format( studentid=studentid )
如果它是整数(或数值),则不需要任何引号{studentid}
:
a =''' select * from student_info where Student_ID = {studentid}; '''.format( studentid=studentid )
添加回答
举报