pythonデータベースクエリはlistまたはtupleのインスタンスを返します。


MySQLdbデフォルトの検索結果はすべてtupleに戻ります。出力する時は便利ではありません。0、1のように読み取らなければなりません。ネットで簡単な修正方法を見つけたら、cursors.DictCurorを伝えてください。
デフォルトのプログラム:

import MySQLdb
db = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='test')
cur = db.cursor()
cur.execute('select * from user')
rs = cur.fetchall()
print rs
#       
# ((1000L, 0L), (2000L, 0L), (3000L, 0L))
変更後:

import MySQLdb
import MySQLdb.cursors
db = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='test',
           cursorclass=MySQLdb.cursors.DictCursor)
cur = db.cursor()
cur.execute('select * from user')
rs = cur.fetchall()
print rs
#       
# ({'age': 0L, 'num': 1000L}, {'age': 0L, 'num': 2000L}, {'age': 0L, 'num': 3000L})
または、connectとcursorの部分を下に置き換えることもできます。
db=MySQLdb.com nnect(host=local host)、user='root'、passwd='123456'、db='test')
cur=db.cursor(cursorclass=MySQLdb.cursors.DictCurrsor)
私の実践:
出力はタプルタイプ:

import pymysql
 
db = pymysql.connect("localhost", "root", "123456", "filestore")
cursor = db.cursor()
sql='select * from tablelist where id>%s' %4
#     
cursor.execute(sql)
result=cursor.fetchall()
print('result',result)
 
sql2='select * from tablelist where id>%s'
values=('4') #        
#     
cursor.execute(sql2,values)
result2=cursor.fetchall()
print('result2',result2)
id_list=[]
tablename_list=[]
tabletime_lsit=[]
cursor.execute('select * from tablelist where id>%s',[4,])
result3=cursor.fetchall()
print('type(result3)',type(result3))
# ((6, 'engineeringdata20180901', '1535731200'),)       
for i in range(len(result3)):
  id_list.append(result3[i][0])
  tablename_list.append(result3[i][1])
  tabletime_lsit.append(result3[i][2])
print(id_list)
print(tabletime_lsit)
print(tablename_list)
cursor.close()
db.close()
#    :
result ((6, 'engineeringdata20180901', '1535731200'), (618, 'engineeringdata20180904', '1535990400'))
result2 ((6, 'engineeringdata20180901', '1535731200'), (618, 'engineeringdata20180904', '1535990400'))
type(result3) <class 'tuple'>
[6, 618]
['1535731200', '1535990400']
['engineeringdata20180901', 'engineeringdata20180904']
出力はリストタイプ:

list_id=[]
list_tablename=[]
list_tabletime=[]
list=get_list('select * from tablelist where id>%s',[4])
print('list:',list)
#  [{'id': 6, 'tablename': 'engineeringdata20180901', 'tabletime': '1535731200'},]       
for i in range(len(list)):
  print(list[i])
  list_id.append(list[i]['id'])
  list_tablename.append(list[i]['tablename'])
  list_tabletime.append(list[i]['tabletime'])
print('list_id:',list_id)
print('list_tabletime:',list_tabletime)
print('list_tablename:',list_tablename)
#      :
list: [{'id': 6, 'tablename': 'engineeringdata20180901', 'tabletime': '1535731200'}, {'id': 618, 'tablename': 'engineeringdata20180904', 'tabletime': '1535990400'}]
{'id': 6, 'tablename': 'engineeringdata20180901', 'tabletime': '1535731200'}
{'id': 618, 'tablename': 'engineeringdata20180904', 'tabletime': '1535990400'}
list_id: [6, 618]
list_tabletime: ['1535731200', '1535990400']
list_tablename: ['engineeringdata20180901', 'engineeringdata20180904']
追加知識:pythonでpymysqlの元のグループのデータをリストに変換します。
余計なことを言わないで、コードを見てください。

from itertools import chain
...
sql="select elems from table"
cursor.execute(sql)
elems = cursor.fetchall()
resultlist = list(chain.from_iterable(elems))
...
以上のpythonデータベースの問い合わせはlistまたはtupleの例に戻ります。小編集は皆さんに全部の内容を共有しています。参考にしてもらいたいです。どうぞよろしくお願いします。