Pymysql 库不 return 数据库中的纯数据
Pymysql library does not return pure data in database
我是 Python 的新手,尤其是 pymysql 库。
我想从我的数据库中进行查询,当查询完成后,结果不是数据库中的纯记录,并且有一些括号和“,”标记等。
这是我的代码。
如果你回答我,我将不胜感激
from pymysql import *
def database_connector():
db = connect(host="localhost",port=3306,user="root",passwd="",
db='telegrambot',charset='utf8')
return db
def question_return(tests_id,questions_id):
db=database_connector()
cursor=db.cursor()
cursor.execute("""SELECT question FROM questions WHERE test_id = '%s' AND
question_id = '%s';""",(tests_id,questions_id))
return_value = cursor.fetchall()
return return_value
print (question_return(1,1))
它会打印类似这样的东西。
(('What is your name ?',),)
我只想打印类似这样的内容,不带括号和其他标记
What is your name ?
请帮我看看怎么做
非常感谢
因为它 returns 元组的元组,你必须迭代它。找到下面的代码。
from pymysql import *
def database_connector():
db = connect(host="localhost",port=3306,user="root",passwd="",
db='telegrambot',charset='utf8')
return db
def question_return(tests_id,questions_id):
db=database_connector()
cursor=db.cursor()
cursor.execute("""SELECT question FROM questions WHERE test_id = '%s' AND
question_id = '%s';""",(tests_id,questions_id))
return_value = cursor.fetchall()
return return_value
for r in question_return(1,1):
print r[0]
在数据库连接器声明中声明一个游标class
from pymysql import *
def database_connector():
db = connect(
host="localhost",
port=3306,
user="root",
passwd="",
db='telegrambot',
charset='utf8'
cursorclass=pymysql.cursors.DictCursor # <-- declare cursor class
)
return db
def question_return(tests_id,questions_id):
try:
with database_connector() as cursor
query = "SELECT question FROM questions WHERE test_id = '%s' AND question_id = '%s';"
cursor.execute(query, (tests_id,questions_id))
return cursor
finally:
database_connector().close()
with question_return(1,1) as pointer:
for row in pointer.fetchall():
print(row['question'])
我是 Python 的新手,尤其是 pymysql 库。
我想从我的数据库中进行查询,当查询完成后,结果不是数据库中的纯记录,并且有一些括号和“,”标记等。
这是我的代码。
如果你回答我,我将不胜感激
from pymysql import *
def database_connector():
db = connect(host="localhost",port=3306,user="root",passwd="",
db='telegrambot',charset='utf8')
return db
def question_return(tests_id,questions_id):
db=database_connector()
cursor=db.cursor()
cursor.execute("""SELECT question FROM questions WHERE test_id = '%s' AND
question_id = '%s';""",(tests_id,questions_id))
return_value = cursor.fetchall()
return return_value
print (question_return(1,1))
它会打印类似这样的东西。
(('What is your name ?',),)
我只想打印类似这样的内容,不带括号和其他标记
What is your name ?
请帮我看看怎么做
非常感谢
因为它 returns 元组的元组,你必须迭代它。找到下面的代码。
from pymysql import *
def database_connector():
db = connect(host="localhost",port=3306,user="root",passwd="",
db='telegrambot',charset='utf8')
return db
def question_return(tests_id,questions_id):
db=database_connector()
cursor=db.cursor()
cursor.execute("""SELECT question FROM questions WHERE test_id = '%s' AND
question_id = '%s';""",(tests_id,questions_id))
return_value = cursor.fetchall()
return return_value
for r in question_return(1,1):
print r[0]
在数据库连接器声明中声明一个游标class
from pymysql import *
def database_connector():
db = connect(
host="localhost",
port=3306,
user="root",
passwd="",
db='telegrambot',
charset='utf8'
cursorclass=pymysql.cursors.DictCursor # <-- declare cursor class
)
return db
def question_return(tests_id,questions_id):
try:
with database_connector() as cursor
query = "SELECT question FROM questions WHERE test_id = '%s' AND question_id = '%s';"
cursor.execute(query, (tests_id,questions_id))
return cursor
finally:
database_connector().close()
with question_return(1,1) as pointer:
for row in pointer.fetchall():
print(row['question'])