2 回答
TA貢獻1876條經(jīng)驗 獲得超7個贊
復(fù)雜性取決于給定輸入的類型。如果你確定輸入的類型,即是字符串還是數(shù)字,你可以直接采用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}'"
否則,如果給我們的輸入類型是動態(tài)的,即可以是字符串或數(shù)字,那么這里有一個適合于此的單行:
a = 'select * from student_info where Student_ID = ' + (studentid if studentid.isnumeric() else "'"+studentid+"'")
僅當(dāng)沒有給出其他條件時,即僅當(dāng)串聯(lián)不會產(chǎn)生不必要的復(fù)雜性時,上述情況才是可能的。您還可以使用 f-string:
a = f'''select * from student_info where Student_ID = {(studentid if studentid.isnumeric() else "'"+studentid+"'")}'''
TA貢獻1818條經(jīng)驗 獲得超3個贊
如果studentid是字符串,您的 sql 語句(或a變量)應(yīng)該類似于:
a =''' select * from student_info where Student_ID = '{studentid}'; '''.format(
studentid=studentid
)如果它是整數(shù)(或數(shù)值),則不需要任何引號{studentid}:
a =''' select * from student_info where Student_ID = {studentid}; '''.format(
studentid=studentid
)添加回答
舉報
