簡體   English   中英

為什么我不能在Python中執行時使用帶有sqlite的printf

[英]Why can't I use printf with sqlite when executed in Python

根據這個頁面printf屬於sqlite的核心功能,因此,使用sqlite3 shell,我可以成功執行此語句:

sqlite> create table foo as select printf("%5.2f", 42.424242) bar;

然而,如果我嘗試用Python腳本做我認為相同的事情,那么它的錯誤就是sqlite3.OperationalError: no such function: printf 這是我使用的腳本:

# -*- coding: utf-8 -*-
import os
import sys
import sqlite3

db_filename = 'printf.db'
if os.path.isfile(db_filename):
   os.remove(db_filename)

db = sqlite3.connect(db_filename)
db.text_factory = str

cur = db.cursor()

cur.execute(r'create table foo as select printf("%5.2f", 42.424242) bar')

有人知道那是為什么嗎?

編輯 :根據g4ur4v的建議,我更改了cur.execute('create...在腳本中cur.execute('create...cur.execute(r'create...錯誤沒有改變。

printf作為sqlite3版本3.8.3中的核心功能添加。 可能你正在使用的Python使用舊版本。 此信息可在以下發行說明中找到:

2014-02-03(3.8.3)

添加了對公用表表達式和WITH子句的支持。

添加了printf() SQL函數。

檢查Python正在使用的Sqlite3庫版本的一種方法是發出以下命令:

print(sqlite3.sqlite_version)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM