python - pymysql 中的字典错误

标签 python mysql dictionary pymysql

我收到以下错误:

if 'ShazK01' in LogRef.values():
AttributeError: 'list' object has no attribute 'values'

运行后:

import pymysql 

db = pymysql.connect(host='localhost', ..)
cur = db.cursor() 

def getData():
     LoginInput=[]
     InputUN = ('ShazK01') 
     InputPC = ('passinput') 
     LoginInput=[InputUN, InputPC] 
     return LoginInput


def checkExistence():
     cur = db.cursor(pymysql.cursors.DictCursor)
     cur.execute("SELECT Username FROM LoginDetails") 
     LogRef = cur.fetchall() #fetch ALL login references
     print(LogRef)
     if 'ShazK01' in LogRef.values():
          print("yes")
     else:
          print("no")

LoginInput = getData()
print(LoginInput)            
print(LoginInput[0])
UNInput = LoginInput[0]
print(UNInput)
checkExistence()

我看过其他答案,但没有帮助。因此,任何有用的建议都将受到赞赏,因为我是同时使用 sql 和 python 的初学者,谢谢!

最佳答案

PyMysql 的 fetchall 返回一个列表(这里是字典列表 - 因为 pymysql.cursors.DictCursor)。你必须写一些类似的东西

from itertools import chain
it = chain.from_iterable(x.values() for x in cur.fetchall())
print('yes' if 'ShazK01' in it else 'no')

print('yes' if any('ShazK01' in x.values() for x in cur.fetchall()) else 'no')

关于python - pymysql 中的字典错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285363/

相关文章:

python - 日出/日落计算

php - 连接到 MYSQL 时出错

mysql - 比较特定列的值后,在 mysql select 语句上返回 bool 值

php - mysql触发器限制id列插入的行数

Python Pandas 数据框到字典(列值到键/值)

javascript - 在 ESLint 中替换按位运算

使用文件的 python 嵌套循环和 if 条件不起作用

Python 将每月和分钟数据帧与 TZ 感知的日期时间索引相结合

python - 我们可以使用任何 Python 工具验证 USDZ 模型吗?

Clojure HashMap 查找的性能问题