如何使用sql数据库中的列值作为python函数的参数?

2024-04-16 12:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着检查我的台词电影的一列中的年份是否是闰年。如果是的话,我想知道与之对应的电影的名字。你知道吗

我尝试了以下代码

def leap_year(year):
    if year%4==0:
        if(year%100==0):
            if(year%400==0):
                return True
            else:
                return False
        else:
            return True           
    else:
        return False

result=pd.read_sql_query("select m.name from movie m where m.year = {}".format(leap_year(m.year)),conn)

print(result)

我知道它不工作,因为我不能直接通过m.year,但我试图找到,但无法得到正确的语法来做到这一点。你知道吗


Tags: 代码falsetruereturnif电影defresult
3条回答

我不太明白你想用你的代码做什么。。。但在这里,这是我能想到的最好的了

import sqlite3

def leap_year(year):
    if year%4==0:
        if(year%100==0):
            if(year%400==0):
                return True
            else:
                return False
        else:
            return True;

    else:
        return False

with sqlite3.connect("db.db") as conn:
    cur = conn.cursor()
    cur.execute("SELECT m.year FROM movie WHERE m.year = ?", (leap_year(m.year)))
    results = cur.fetchall()
    for result in results:
        print(result)

使用calendar

import calendar

def leapyear(year):
    result = calendar.isleap(year)
    if result == True:
        print(str(year) + ' is a leap year')
    else:
        print(str(year) + ' is not a leap year')

leapyear(2018)

使用sql列的年份作为函数的年份输入

首先从表中选择所有年份和电影名称。你现在设置它的方式是过滤到一年,这听起来不像你想要的。你知道吗

results = pd.read_sql_query("select name, year from movies", con=conn)

现在遍历结果中的每一年,并在其上运行闰年函数。你知道吗

import calendar

for index, row in results.iterrows():
    if calendar.isleap(row['year']):
        print(row['name'])

相关问题 更多 >