在没有eval()的pymongo中设置mongo数据库。可能是setattr()?

2024-05-14 09:41:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我习惯于在pymongo中这样做作为访问特定数据库的一种方式:

import pymongo

connection = pymongo.MongoClient()
db = connection.DBNAME

然后查询收集名称数据库(),等等。但是,我现在希望能够通过变量连接到名为的数据库,并着眼于在一系列数据库上循环。比如说:

^{pr2}$

我被教导eval()有时是魔鬼,应该避免。如何使用setattr()或其他解决方案完成此操作?像是。。。在

dbname = 'DBNAME'

connection = pymongo.MongoClient()
db = setattr(connection, '??name??', dbname)

Tags: import名称数据库dbeval方式connectiondbname
1条回答
网友
1楼 · 发布于 2024-05-14 09:41:21

您想要^{},而不是{}。在

db = getattr(connection,dbname)

其中setattr是一种方法,如果你知道属性的名称,getattr是一种方法,如果你知道属性的名称,getattr是一种获取属性的方法。在

换句话说,以下是100%等效的:

^{pr2}$

相关问题 更多 >

    热门问题