thisによると、文字列ではなく、キャンセル ボタンが押されたときにchoicebox
返されます。条件をに変更すると、機能するはずです。None
'None'
if choice is None:
for
2番目のループの問題csvdict
は、最初のループで使用した後に使い果たされるイテレータであることですfor
。新しいイテレータを作成するか、ファイルの内容をリストまたはディクショナリに保存します (データが多すぎない場合)。すでにフィールドに対してこれを行ってcountry
いますが、すべてのフィールドが必要なようです。最善の方法は、他のフィールドを保持するリストdict
への名前のマッピングを作成するcountry
ことです。これにより、すべてのフィールドを再度ループする代わりに、それらにすばやくアクセスできます。
// instead of your first for loop
choices = dict()
for line in csvdict:
choices[line['Country']] = line
...
// instead of your second for loop
if choice in choices:
line = choices[choice]
...