我在其中有一个数据库“记录”类型的文档:
{ ..., ..., "grades" : {"good": "40.0", "bad":"22.0"}}
我试过了:
for i in records:
variable = i['grade.good']
但这似乎不起作用。
其次,成绩是字符串,我需要将它们转换为整数/ 再次尝试
total = int(i['grade.good']) + int(i['grade.bad'])
但那也错了。 请注意我的字符串是浮点数 非常感谢!!
答案 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']