我想将包含数字和字母的GST号码以及电子邮件id一起存储到数据库中,但它显示的是ValueError: parameters are of unsupported type
。在这里,我只尝试了手机号码,它的工作非常完美,但不是在商品及服务税和电子邮件id的情况下
import sqlite3
import re
def getphonenumber(s):
phonenumberregex=re.findall(r'\+\d\d\d\d\d\d\d\d\d\d\d\d|\d\d\d\d+-\d\d\d\d\d\d\d|\d\d\d\d\d\d\d\d\d\d',line)
if phonenumberregex:
print(phonenumberregex)
return (phonenumberregex)
def getemailid(s):
emailidregex=re.findall(r'\S+@\S+',line)
if emailidregex:
print(emailidregex)
return (emailidregex)
def getgst(s):
gstregex=re.findall(r'\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}[Z]{1}[A-Z\d]{1}',line)
if gstregex:
print(gstregex)
return (gstregex)
with open('yesno.txt') as s:
amountdata = s.readlines()
for line in amountdata:
if line.__contains__('Gst'):
c=getgst(s)
if line.__contains__('Mob'):
a=getphonenumber(s)
if line.__contains__('Email'):
b=getemailid(s)
s.close()
conn = sqlite3.connect('test3.db')
c = conn.cursor()
def create_table():
c.execute('CREATE TABLE IF NOT EXISTS RecordTWO (gst STR)')
def data_entry():
c.execute("INSERT INTO RecordTWO (GST) VALUES(?)", (c))
conn.commit()
create_table()
data_entry()
def get_posts():
with conn:
c.execute("SELECT * FROM RecordTWO")
print(c.fetchall())
get_posts()
print("Table created successfully")
我想在数据库中存储gst的值,其中包含字符和数字以及电子邮件id。另外,由于我是python新手,有人能告诉我如何以表格格式获得输出吗?你知道吗
你不会说哪一行抛出了异常,但我猜是这一行:
你到底想把什么插入数据库?在继续阅读之前,请花一些时间仔细看一下这一行。看看你能不能弄明白。你知道吗
如果您想不通,您可以使用变量
c
中的游标来尝试将游标本身插入数据库。那不太可能做你想做的事。您可能已经使用c=getgst(s)
为变量c
赋值,但是在创建游标并将其赋值给c
时,您重写了该值。你知道吗您已经落入这个陷阱,因为您使用了单字母的名称为您的变量。别这样。返回并给出变量的
a
、b
、c
和s
名称,以便更好地描述它们所持有的值。是的,输入要多一些,但是清晰的名字让你的代码更容易阅读。你知道吗假设我们将cursor变量重命名为
db_cursor
。在下面的行中发现错误比在上面的行中容易多少?你知道吗你还得做一个改变。当您编写
(c)
,或者在我上面的示例(db_cursor)
时,似乎您正在尝试创建一个包含单个值的元组。execute
方法的第二个参数需要是一个元组(这里也可以使用列表)。然而,(c)
不是一个1元组,它只是一个括号中的表达式。要使其成为元组,请在)
之前包含一个尾随逗号:要获得表格格式的输出,请参阅此站点上的其他问题,例如Python format tabular output。你知道吗
相关问题 更多 >
编程相关推荐