Shi*_*dla 3 python if-statement slice
可能重复:
Python中的三元条件运算符
我正在研究python并尝试将数据保存到数据库中假设我有以下代码
conn = mdb.connect(user='root', passwd='redhat', db='Data', host='localhost', charset="utf8")
ex_li = ['stri_one','stri_two','stri_three','stri_four']
if ex_li[0] != '':
campaignID = ex_li[0]
else:
campaignID = ''
if ex_li[1] != '':
keywordID = ex_li[1]
else:
keywordID = ''
.........
.......
try:
cursor = conn.cursor()
query = "insert into PerformaceReport(campaignID, keywordID, keyword, avgPosition,cost)"
query += "VALUES (%s, '%s', '%s', '%s')" %(campaignID, keywordID, keyword, avgPosition,cost)
cursor.execute( query )
conn.commit()
except Exception as e:
print e,"!!!! Exception happend!!!!"
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,如果它们不等于空字符串,我将从列表中获取字符串,因为在切片期间如果没有字符串则会显示list index out of range错误.
那么有没有办法在一行中编写这些if和else语句并提交为值直接查询如下所示(仅作为一个想法)
query += "VALUES (%s, '%s', '%s', '%s')" %(if ex_li[0] != '': campaignID = ex_li[0] else: campaignID = '' ............)
Run Code Online (Sandbox Code Playgroud)
expression_if_true if condition else expression_if_false
Run Code Online (Sandbox Code Playgroud)
所以试试吧
campaignID = main_res[0] if ex_li[0] != '' else ''
Run Code Online (Sandbox Code Playgroud)