python mysql字典

python mysql字典,python,mysql,Python,Mysql,我一直在用Python在MySQL中使用dictcursor,问题是我如何在不必在所有字典中迭代的情况下检索特定记录,实际上我使用的是: data=cursor.fechall for item in data: if item["article"]==articledesc: do something break 有没有一种方法可以访问直接创建的字典的元素,而不必使用for循环迭代所有元素 谢谢如果您只需要一篇文章,请更改查询以添加wher

我一直在用Python在MySQL中使用dictcursor,问题是我如何在不必在所有字典中迭代的情况下检索特定记录,实际上我使用的是:

data=cursor.fechall
for item in data:
    if item["article"]==articledesc:
           do something
           break
有没有一种方法可以访问直接创建的字典的元素,而不必使用for循环迭代所有元素


谢谢

如果您只需要一篇文章,请更改查询以添加where子句:

SELECT ...
FROM ...
WHERE article = %s
从效率的角度来看,过滤检索到的结果集比您需要的多不是一个好主意

如果您要检索一个更大的结果集,并在以后按名称挑选多篇文章,您可以在第一次访问中构建一个基本索引;然后使用此选项按名称高效地访问行:

data = cursor.fetchall()

article_index = dict((item["article"], item) for item in data)

article = article_index.get(articledesc)
if article:
   #do something

您可以不直接构建另一个字典,但它是一个隐式循环:

data_article = dict((item['article'], item) for item in data)
然后您可以直接访问数据:

myitem = dict_article[articledesc]

其实不是,因为我只是需要很多人的信息items@Raul通常,您应该选择一个只返回您感兴趣的行的查询过滤器。您的代码可以转换为查询,让数据库做它最擅长的事情