1

これがばかげた質問である場合は申し訳ありませんが、私はそれについてよく考え、Jinjaのドキュメントを調べましたが、これまでのところ役に立ちません。短い背景:UdacityのCS101とCS253を完成させたばかりで、友人がヨガスタジオの予約システムを構築するのを手伝おうとしています。ちょうど同じように、それはすべてGoogleAppengineにあります

これに似た利用可能なヨガクラスのリストが欲しいです:

Monday

Dynamic Yoga with Mary 6pm

Soft yoga with Susie 8pm

Wednesday

Hatha yoga with Bob 5pm

Hot yoga with Alice 7pm

それで、クラスのリストを取得して、月曜日にヨガのクラスがあるかどうかを確認したいと思います。ある場合は、「月曜日」をリストに追加し、すべての月曜日のクラスを追加します。他のすべての日も同様です。このような:

day_output1 = ['Monday',['Dynamic Yoga with Mary 6pm'],['Soft yoga with Su..']]

day_output2 = ['Wednesday',['Hatha yoga with Bob 5pm'],['Hot yoga with Al...']]

次に、これらを1週間のリストに追加し、テンプレートに送信します。

weekly_classes = [day_output1, day_output2]

現在、KeyErrorが発生しています。これは、キーが見つからないことを意味しますが、理由がわかりません。

  File "/Users/username/YogaSchemat/yogaschema/main.py", line 113, in get
    day = d[n]
KeyError: 1

このコードで...よろしくお願いします!

d = {
"1": 'Monday', 
"2": 'Tuesday', 
"3": 'Wednesday', 
"4": 'Thursday', 
"5": 'Friday', 
"6": 'Saturday', 
"7": 'Sunday'
}
def get_classes():
    yoga_classes = Schema.all() #appengine DB request
    if yoga_classes:
        weekly_classes = [] #list that will be sent to template
        for n in range(1,8):
            for e in yoga_classes:
                if e.weekday == n:
                    day = d[n] #getting weekday from d
                    class_details = [] #
                    class_details.append(e)
                    day_output = [day,class_details]
                    weekly_classes.append(day_output)
    self.response.out.write(weekly_classes)
4

1 に答える 1

1

dマッピングで文字列キーを使用していますが、代わりに整数を検索しています。

この場合、代わりにリストを使用する必要があります。

d = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

# ...
for n in range(7):
    day = d[n]

0から6のn間で、リスト内のそれらの位置にある週の名前に直接マッピングしdます。

または、代わりに整数をキーとして使用することもできます。

d = {
    1: 'Monday', 
    2: 'Tuesday', 
    3: 'Wednesday', 
    4: 'Thursday', 
    5: 'Friday', 
    6: 'Saturday', 
    7: 'Sunday'
}

ただし、キーはシーケンシャルであるため、スペースを節約することもできます。

于 2013-02-26T21:06:34.300 に答える