Python MySQL 字典

0 投票
2 回答
616 浏览
提问于 2025-04-16 19:14

我一直在用Python和MySQL的dictcursor,遇到的问题是我怎么能直接获取某条记录,而不需要一个一个地查字典。其实我现在是这样做的:

data=cursor.fechall
for item in data:
    if item["article"]==articledesc:
           do something
           break

有没有办法直接访问这个字典里的某个元素,而不需要用for循环去遍历所有的元素呢?

谢谢!

2 个回答

0

不能直接这样做,你可以建立另一个字典,但这其实是一个隐含的循环:

data_article = dict((item['article'], item) for item in data)

然后你就可以直接访问数据了:

myitem = dict_article[articledesc]
2

如果你只需要一篇文章,那就把你的查询改一下,添加一个条件:

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

撰写回答