在python中将变量值替换为命令
Posted
技术标签:
【中文标题】在python中将变量值替换为命令【英文标题】:Substitute variable value to command in python 【发布时间】:2021-11-05 18:10:17 【问题描述】:我正在尝试编写一个简单的 python 脚本来从 mongodb 收集某些命令输出,作为备份前后验证数据库的一部分。
下面是脚本。
import pymongo
import json
client = pymongo.MongoClient('localhost',username='admin',password='admin')
db = client['mydb']
collections = list(db.list_collection_names())
for i in collections:
print(db.$i.estimated_document_count())
所有集合都存储在名为集合的列表中,我想在 for 循环中运行它,以便我可以获取每个集合中的文档数。我知道这里的最后一个打印语句是错误的。如何正确处理?我希望 $i 在每次迭代期间替换集合名称,以便我可以获得该集合的文档数。
当我运行“print(db.audit.estimated_document_count())”时,它会为我提供审计集合中的文档计数。但是如何在 for 循环中遍历列表并替换命令中 i 的值呢?
另外,为了验证备份/恢复,我应该对数据库运行任何其他命令来验证备份/恢复吗?
【问题讨论】:
【参考方案1】:您不能在“点”表达式中使用计算值作为标识符,至少在不使用肮脏技巧的情况下不能。
你可以做的是找到一些其他的机制来获取给定名称的集合。根据tutorial和API reference,可以用db['foo']
代替db.foo
。
【讨论】:
原来很简单。非常感谢。以上是关于在python中将变量值替换为命令的主要内容,如果未能解决你的问题,请参考以下文章
在本机 C++ 中将变量从 C# 编组为 void*,并在本机程序内更改 Managed/C# 中的变量值
如果存储过程失败,则在执行 SQL 任务中将输出变量值获取到 ssis 变量中