1

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

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

我试过 :

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

但这似乎不起作用。

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

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

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

4

2 回答 2

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
于 2012-11-21T11:38:54.267 回答
2

最优雅的解决方案是:

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

这将返回一个包含所有好成绩的数组,对坏的做同样的事情。

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

variable = i['grade']['good']
于 2012-11-21T11:38:24.377 回答