首页 > 解决方案 > 在 Python 中使用 IF 条件从 SQL 表中导入数据(或仅在 Python 中满足条件时才从 SQL 表中导入数据)

问题描述

有条件检查 Python。如果条件满足,那么我必须继续从我的 SQL 数据库中的表中提取数据。

下面的代码运行良好,并为我提供了从 SQL 数据库中提取的数据。

import mysql.connector
conn = mysql.connector.connect(user='XXXXXXX', 
            password='XXXXXXX',host='XXXXXXX',database='XXXXXXX')
cursor = conn.cursor()
cursor.execute("SELECT * FROM table where table.column = 'abc')
result = cursor.fetchall()
print (result)
conn.close()

现在,我尝试在从 SQL 数据库中获取数据之前使用IF 条件。但这给了我语法错误

请找到我正在尝试的示例,如下所述:

if(x == 'True'):
    (import mysql.connector
     conn = mysql.connector.connect(user='XXXXXXX', 
            password='XXXXXXX',host='XXXXXXX',database='XXXXXXX')
     cursor = conn.cursor()
     cursor.execute("SELECT * FROM table where table.column = 'abc')
     result = cursor.fetchall()
     print (result)
     conn.close())
else:
    print("X is false, cannot execute")

请帮助我如何仅在满足条件的情况下执行。

标签: pythonif-statementconditional-statements

解决方案


  1. 您应该删除if块中的括号。只有在调用链中的方法时才应该使用这样的括号,例如:
mysql.connector.connect(user='XXXXXXX', password='XXXXXXX',host='XXXXXXX',database='XXXXXXX')

(
    mysql.
    connector.
    connect(user='XXXXXXX', password='XXXXXXX',host='XXXXXXX',database='XXXXXXX')
)
  1. 如果x条件返回布尔输出 True/False,则足够:
if x:
    ....
else:
    ....
  1. 如果x条件返回布尔输出 True/False,则 True 不等于 'True':
True == 'True'

# output
False

推荐阅读