我有一份与数据库相关的学校作业。出于技术原因,我们选择使用MongoDB and python 2.7
进行操作。我们考虑在数据库中包含这些数据。
data=[{"name":"zack","age": '12'},\
{"name":"jake","age": '13'},\
{"name":"drake","age": '14'},\
{"name":"mike","age": '15'}]
一旦我们将数据插入到集合中,我们就想以循环方式对孩子年龄进行计算,所以我们运行了这个:
for kid in t.find({},{'_id':False,'name':False}):
print 5+int(kid)`
输出
Traceback (most recent call last):
File "C:\...\school_project.py", line 17, in <module>
print 5+int(kid)
TypeError: int() argument must be a string or a number, not 'dict'
当我们尝试将字符串附加到孩子名称时,如"hello" + kid + "how are you?"
,最后是:
Traceback (most recent call last):
File "C:\...\school_project.py", line 17,...
print "hello" + kid + "how are you?"
TypeError: cannot concatenate 'str' and 'dict' objects
我希望我的查询返回整数/字符串对象,而不是dict
。
所以我想,我们可能会以错误的方式查询,我们是否有一种“正确”的方式来使用我存储到数据库中的数据并将其插入到int\string
变量中?
或者只是MongoDB是怎样的?
答案 0 :(得分:0)
find
方法返回文档(dict
)而不是值。因此,在将dict
应用到int
之前,请确保从x:DeferLoadStrategy="Lazy"
中提取所需字段。
答案 1 :(得分:0)
<强>的变化:强>
print 5+int(kid["age"])
由于mongo的输出将采用dict [JSON]格式,因此您必须查询特定元素然后添加
print "hello" + kid["name"] + "how are you?"
将孩子们的名字命名为hello world