python:进入嵌入文档

python:进入嵌入文档,python,mongodb,integer,Python,Mongodb,Integer,我有一个数据库,其中包含以下类型的文档记录: { ..., ..., "grades" : {"good": "40.0", "bad":"22.0"}} 我需要进入文档并定义一个变量作为好成绩和坏成绩的总和。 我不知道如何进入嵌入的医生体内, 我试过: for i in records: variable = i['grade.good'] 但这似乎不起作用 其次,等级是字符串,我需要将它们转换为整数/ 再次尝试 total = int(i['grade.good']) + int

我有一个数据库,其中包含以下类型的文档记录:

{ ..., ..., "grades" : {"good": "40.0", "bad":"22.0"}}
我需要进入文档并定义一个变量作为好成绩和坏成绩的总和。 我不知道如何进入嵌入的医生体内, 我试过:

for i in records:
    variable = i['grade.good']
但这似乎不起作用

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

total = int(i['grade.good']) + int(i['grade.bad'])
但这也是错误的。 请注意,我的字符串是浮点
非常感谢你的帮助

最优雅的解决方案是:

good_grades=[grades['good'] for grades in records] 
这将返回一个包含所有好成绩的数组,对坏成绩也做同样的事情

或者,您可以简单地更改此行:

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

最优雅的解决方案是:

good_grades=[grades['good'] for grades in records] 
这将返回一个包含所有好成绩的数组,对坏成绩也做同样的事情

或者,您可以简单地更改此行:

variable = i['grade']['good']
而不是我['grade.good']尝试我['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
而不是我['grade.good']尝试我['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

代替i[grade.good]尝试i[grade][good]代替i[grade.good]尝试i[grade][good]我尝试了此操作,但它返回ValueError:以10为基数的int的无效文字:“3.0”注意:我的好成绩和坏成绩数是浮动的points@Julia:如果您有浮点数,请将其转换为浮点数['grades']['good'],而不是intI尝试此操作,但它返回ValueError:以10为基数的int的文本无效:“3.0”注意:我的好成绩和坏成绩的数量是浮动的points@Julia:如果您有浮点数,请将其转换为浮点数['grades']['good'],而不是int