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 に答える