gpt4 book ai didi

python - 将数据库中的列与python代码中获取的变量进行比较

转载 作者:行者123 更新时间:2023-11-29 16:42:35 27 4
gpt4 key购买 nike

我有一个使用 Python(mysql.connector) 的 MySQL 数据库。这是我的 table :

+----+-------+-------+--------+------------+
| id | num1 | num2 | gen | filename |
+----+-------+-------+--------+------------+
| 1 | 45 | 55 | woman | vid1.mp4 |
| 2 | 25 | 35 | man | vid2.mp4 |
| 3 | 45 | 55 | man | vid3.mp4 |
| 4 | 5 | 15 | woman | vid4.mp4 |

然后我通过查询数据库获取下面的列表:

 [(1, 45, 55, 'woman', 'vid1.mp4'), (2, 25, 35, 'man', 'vid2.mp4'),(3, 45, 55, 'man', 'vid3.mp4'),(4, 5, 15, 'woman', 'vid4.mp4')]

我在代码中获取号码和性别,并将其与数据库中输入的 num1、num2 和性别进行比较。例如:

if 25<num<35 and gender =='man':
filename = 'vid2.mp4'

我该如何实现这个?

最佳答案

当我有一个像您在此处指定的数据列表时,向其中添加列名称会很有用。

data = [(1, 45, 55, 'woman', 'vid1.mp4') ... ] # This comes from DB
col_names = ['id','num1','num2','gen','filename']

接下来,循环迭代数据

for row in data:
# row now contains a single value, for instance (1, 45, 55, 'woman', 'vid1.mp4')

row_dict = dict(zip(col_names, row))
# row_dict is now a dictionary of {'id':1, 'num1':45 ... }

if row_dict['num1'] == 25:
print("%s has an num1 of 25!" % row_dict)

我希望这能让您了解如何迭代数据并检测某些值是否符合您的预期。

另一个选项是在循环中使用元组解包

for id, num1, num2, gen, filename in data:
if num1 == 25:
print ("wow!")

根据您的编辑:

for id, num1, num2, gen, db_filename in data:
if 25<num1<35 and gen == 'man':
filename = db_filename
else:
print("Oh no, file not found")
filename = None

关于python - 将数据库中的列与python代码中获取的变量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com