python:进入嵌入文档

时间:2012-11-21 11:32:39

标签: python mongodb integer

我在其中有一个数据库“记录”类型的文档:

{ ..., ..., "grades" : {"good": "40.0", "bad":"22.0"}}
  1. 我需要进入文档并将变量定义为“好”和“坏”等级的总和。
  2. 我不知道如何进入嵌入式文档,
  3. 我试过了:

    for i in records:
        variable = i['grade.good']
    

    但这似乎不起作用。

    其次,成绩是字符串,我需要将它们转换为整数/ 再次尝试

    total = int(i['grade.good']) + int(i['grade.bad'])
    

    但那也错了。 请注意我的字符串是浮点数 非常感谢!!

2 个答案:

答案 0 :(得分:3)

而不是i['grade.good']尝试i['grade']['good']

正确地从字典中检索数据

In [11]: d = {"grades" : {"good": "40", "bad":"22"}}

In [12]: d['grades']['good']
Out[12]: '40'

In [13]: total= int(d['grades']['good']) + int(d['grades']['bad'])

In [14]: total
Out[14]: 62

表示浮点数

In [21]: d = {"grades" : {"good": "40.0", "bad":"22.0"}}

In [22]: print float(d['grades']['good']) + float(d['grades']['bad'])
62.0

答案 1 :(得分:2)

最优雅的解决方案是:

good_grades=[grades['good'] for grades in records] 

这将返回一个包含所有优秀成绩的数组,对于糟糕的事情做同样的事情。

或者,您只需更改此行:

variable = i['grade']['good']