我试图查看sqlite3是否可以与select语句中的自定义Python函数结合使用。
我正在尝试找出类似的可能性。
select my_custom_python_function(b.name), b.id, b.country from my_table b
my_custom_python_function是我要创建的自定义python函数。这类似于任何现有的sqlite3函数。例如isull,printf
我找不到任何文档来执行此操作。任何输入将不胜感激。
我正在使用sqlite 3.8.3和python 3.6,如果当前版本无法实现,我会根据需要进行升级。
答案 0 :(得分:0)
您可以从sqlite查询中调用python函数。 只需使用create_function(“ sql_name”,no_of_arguments,python_function)
示例:
import sqlite3
def returnTopRank(students_rank, threshold):
return students_rank < threshold
db = sqlite3.connect("my.db")
db.create_function("sql_returnTopRank", 2, returnTopRank)
query = "SELECT rank FROM students WHERE sql_returnTopRank(students.rank, 10)"
cur = db.cursor()
cur.execute(query)
在上面的示例中,“ create_function”将python函数与sql数据库链接,可以在查询中的任何位置调用该函数。
您可以修改上面的示例以在您的示例中使用。
我希望这会有所帮助。